特定のテキストを含むファイルをディレクトリから検索して別のディレクトリにコピーする方法は? .kshシェルを使用しています。
答え1
そして旗をman xargs
見てください。-I
find /path/to/directory -type f -exec grep -il "your pattern" {} \; | xargs -I % cp % /dest/dir/
入力を保存するには、次のコマンドをシェルスクリプトに入力します。
#!/usr/bin/ksh
# Script name: locate
find /path/to/directory -type f -exec grep -il "$1" {} \; | xargs -I % cp % /dest/dir/
実行するには、検索したいテキストの場所を入力してくださいlocate searchstring
。searchstring
答え2
検索したいデフォルトディレクトリから実行できます。
cp $(grep -r -l "the pattern" *) target_directory
grep -r
避けることを意味する-l
一致するファイルの代わりにファイルパスがリストされていることを示します。put
$()
コマンドはそれを実行し、結果を外部コマンドに入れます。cpはファイルのリストを取得し、最後のパスがディレクトリの場合はすべてのファイルをそこにコピーします。