体力,気力,ときどき知力

情報系HPC大学院生の日頃のメモなど.intel CPU, SIMD, AVX, vim, Linux,簡単なことから書きはじめてみたBlog

シェルスクリプトでプログラムの計測とかをするために

研究室を見てると,みんなシェルスクリプトを書いてるみたいだけど,シェルスクリプトのfor文には2種類ある事を知らない人が多いみたい.

僕はあんまり機会がなくて(2)は使わないんだけど,有効なので紹介する.

 

(1)よくあるfor文

for ( (n=0 ; n<100 ; n++ ) )

do

echo cat $n.txt

done

 

(2)カウンタに文字式を使う

for文の中は上と同じものだったとして,

do

echo $n

done

for文の条件式をこのように書くと

 

$ for n in 1 2 3

>> 1 2 3 (本当は開業されるけど省略)

 

$ for n in $(ls | grep *.txt)

>> hoge.txt fuga.txt hige.txt

 

$for n in $(cat hoge.txt)

>> セパレータで区切られたhoge.txt内の文字列を出力

 

$for n in $(awk '{print$1}' hoge,txt)

>> セパレータで区切られたhoge.txt内の第一フィールドの文字列を出力

 

こんな感じ.知らない人は使って.