文字列検索

ディレクトリ配下のすべてのファイル内から文字列を探す

find (ディレクトリ名) | xargs grep (文字列)
find (ディレクトリ名) -type f -name "*" | xargs grep (文字列)

ex
find /etc/nginx | xargs grep alias

grep --help
n:行番号
c:回数カウント

ex
find /etc/nginx | xargs grep -n alias

文字列置換

find (ディレクトリ・ファイル名・ワイルドカード可)| xargs sed -i(装飾名) 's/(検索文字列)/(置換文字)/'
ディレクトリに対しての文字列置換はできないのでfindで対象ファイル群を指定、xargsを付与してsedで文字列を置換’s///’、置換ミスの際に復元できるようにsed -iで装飾をつけておく。

ex
/var/www/配下のhtmlファイルを検索xargsしてsedでjquery1.9.1を1.11.1に置換、置換前のファイル名に.endを追加して複製しておく。
find /var/www/*.html | xargs sed -i.end 's/jquery-1.9
.1.min.js/jquery-1.11.1.min.js/'


/www/htdocsディレクトリ配下のファイルを検索xargsしてsedでid=”a”を”
name_a”に置換、置換前のファイル名に+backupを追加して複製しておく。
find /www/htdocs -type f | xargs sed -i+backup 's/div id="a"/div id="name_a"/'

/www/htdocs/配下のhtmlファイルを検索、xargsの対象となったファイルを標準出力に表示-tしつつsedでstrongをh3に置換する。
find /www/htdocs/*.html | xargs -t sed 's/strong>/h3>/'

不要になった複製ファイル(バックアップ)を一括削除する

find (ディレクトリ) -name "(ファイル名)" -exec rm {} \;
find ./ -name "*.bak" -exec rm {} \;
-execを-okにすると確認後削除

コメントを残す