すべてのファイルの中からある条件にあてはまるファイルだけに同じ処理を行いたいとき
1.条件にあうファイルを抽出し新しいファイルにファイル名を列挙する 2.新しいファイルを一行ずつ処理する
例えば以下は全ファイルの中から、ある処理をしたい、hogeという名前が入ったファイルまたは拡張子が.txtであるファイルを抽出して、その中でもhoge.txtにだけある処理をするシェルスクリプト
#!/bin/bash find -name "*hoge*" 1>filelist.txt ; find -name "*.txt" 1>>filelist.txt #条件に合うファイルとそのパスをfilelist.txtに書き込む cat filelist.txt | while read line #filelist.txtを一行ずつ処理する do filename=`basename $line` #ファイル名だけを摘出 if [ ${filename} = "hoge.txt" ]; then #hoge.txtだけ特定の処理 ##処理を記入## else ##処理を記入## fi done