便利コマンド whileで繰り返し処理を簡単に

Linuxネタ

前回無限ループの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]#

以上