Perl

文字列置換

estis2016/03/25 (金) 01:53 に投稿

DocumentRoot "/var/www/html"
DocumentRoot /var/www/html

と書かれている行を

DocumentRoot "/var/www/html/"
DocumentRoot /var/www/html/

に変更したい場合、対象ファイルを tmp とすると

$ perl -wpl -e 's:(DocumentRoot "{0,1}[^"]*):$1/:' tmp
DocumentRoot "/var/www/html/"
DocumentRoot /var/www/html/

で変更できる。

Perl モジュールのバージョン確認方法

estis2014/01/07 (火) 20:54 に投稿

ファイルに確認したいモジュールの名前が書いてあるとする。
例えば

$ cat tmp 
Socket
utf8
DBD

この時、以下の方法が使える。

$ for i in $(cat tmp)
> do
> perl -m$i -e 'printf "%s:%s\n", '$i', $'$i'::VERSION'
> done

出力結果は、こんな感じ。

Socket:2.009
utf8:1.10
Can't locate DBD.pm in @INC (you may need to install the DBD module) (@INC contains: /usr/local/lib/perl5/site_perl/5.18.1/x86_64-linux /usr/local/lib/perl5/site_perl/5.18.1 /usr/local/lib/perl5/5.18.1/x86_64-linux /usr/local/lib/perl5/5.18.1 .).
BEGIN failed--compilation aborted.

ここでは、DBDが無いことがわかる。

同名ファイルでサイズ違いのものだけを表示

estis2009/04/07 (火) 18:06 に投稿

やりたいこと:

次のような二つのディレクトリがあり、同じ名前のファイルがそれぞれあるが、その内サイズが異なるファイル名を表示する。
これをワンライナーで実現する。

$ ls -l *

TEST_1:
total 32
-rw-r--r--  1 estis  estis    4  4  7 09:44 test01
-rw-r--r--  1 estis  estis   44  4  7 09:49 test02
-rw-r--r--  1 estis  estis  118  4  7 09:46 test03
-rw-r--r--  1 estis  estis   40  4  7 09:47 test04

TEST_2:
total 32
-rw-r--r--  1 estis  estis    4  4  7 09:44 test01
-rw-r--r--  1 estis  estis    4  4  7 09:45 test02
-rw-r--r--  1 estis  estis  118  4  7 09:46 test03
-rw-r--r--  1 estis  estis   80  4  7 09:48 test04

こういう状態なので、欲しい答えは、
test02とtest04。