ファイルを行ごとに読み込んで、各行ごとにスペース区切り配列に入れるスクリプト
ファイルを行ごとに読み込み、各行ごとにスペース区切りの配列に入れたい。
$ cat sample.txt AAA EEE III BBB FFF JJJ CCC GGG KKK DDD HHH LLL
ファイルをcatしてfor文で回すスクリプトに読ませてみる。
$ cat cat_for.sh #/bin/zh [ -f $1 ] || exit 1 for i in $(cat $1) do echo $i done
catしてforするスクリプトを実行
$ ./cat_for sample.txt AAA EEE III BBB FFF JJJ CCC GGG KKK DDD HHH LLL
スペース区切りで読みやがる。行ごとじゃないんだ。
今度は、よくあるread lineをwhileで回すスクリプトで試す
$ cat readline1.sh #/bin/zh [ -f $1 ] || exit 1 while read line do echo $line done < $1
よくあるread lineのスクリプトを実行する
$ ./readline1.sh sample.txt AAA EEE III BBB FFF JJJ CCC GGG KKK DDD HHH LLL
いけてるっぽい。
配列に入れるスクリプトに修正してみる。
$ cat readline2.sh #/bin/zh [ -f $1 ] || exit 1 while read line do # 配列に入れる a=($line) # 0番目の配列をechoする echo ${a[0]} # 1番目の配列をechoする echo ${a[1]} # 2番目の配列をechoする echo ${a[2]} # 配列すべてをechoする echo ${a[*]} echo ${a[@]} done < $1
配列に入れるスクリプトを実行する
$ ./readline2.sh sample.txt AAA EEE III AAA EEE III AAA EEE III BBB FFF JJJ BBB FFF JJJ BBB FFF JJJ CCC GGG KKK CCC GGG KKK CCC GGG KKK DDD HHH LLL DDD HHH LLL DDD HHH LLL
できましたな。