読者です 読者をやめる 読者になる 読者になる

シェルで繰り返してコマンドを実行したいときに便利だったのでメモ(foreachとfor)

linux

>ls -l
20140101.log 20140102.log 20140103.log

やりたいこととしては単純でこれらのファイルから特定の文字列が入っている行数をそれぞれ求めたい

■そのままコマンド実行
>grep example 20140101.log | wc -l
100
>grep example 20140102.log | wc -l
200
>grep example 20140103.log | wc -l
300

cshの場合

>foreach i (20140101.log 20140102.log 20140103.log)
foreach? grep example $i | wc -l
foreach? end

100
200
300

bashの場合

>for i in 20140101.log 20140102.log 20140103.log;do
>grep example $i | wc -l
>done

100
200
300

大変便利でした