前回無限ループのwhileの使い方を紹介した。
今回はそれの応用で、特定のファイルをリストファイルに記載しておき、それに一斉に処理をする用途。リストファイルの1番上から最終行までを繰り返し、終われば終了する、というイメージ。
以下の例ではXXX.gz で圧縮されたファイルをすべてgunzipする、という操作。最初にリストファイルを作る手間はあるが、応用がきくので覚えておくと便利。
[root@cent7S2 work]# ls
messages messages.0.gz messages.1.gz messages.2.gz messages.3.gz messages.4.gz messages.5.gz
[root@cent7S2 work]# ls *gz > list.txt
[root@cent7S2 work]# more list.txt
messages.0.gz
messages.1.gz
messages.2.gz
messages.3.gz
messages.4.gz
messages.5.gz
[root@cent7S2 work]# while read LINE
> do
> gunzip $LINE
> done < list.txt
[root@cent7S2 work]# ls
list.txt messages messages.0 messages.1 messages.2 messages.3 messages.4 messages.5
[root@cent7S2 work]#
以上