有時候想要對文字檔的內容做運算後再取代原本的文字,本來是想弄個小程式來處理的,寫著寫著發現根本沒必要。
一開始是這樣子寫的:
1 2 3 4 5 6 |
my $regexp = shift @ARGV; while (<>) { eval $regexp; print; } |
這樣子就能用類似 sed 一樣的方式處理文字,例如把秒數換算成分鐘:
script.pl ‘s#second=(\d+)#”minutes=”.int($1/60)#e’ file.txt
弄完以後看著這小程式感覺很眼熟,好像在書上看過?Perl 不是有參數可以做類似的事情嗎?
最後用命令列達成一樣的目的:
perl -p -e ‘s#second=(\d+)#”minutes=”.int($1/60)#e’ file.txt
這次印象深刻了,希望下次要用到時能想起來 xD