Wordの添付ファイルが含まれていないファイルを検索するためのこのgrepコマンドがあります。
grep -L -- Attachments *
そのコマンドから出力されるすべてのファイルを移動したいと思います。 bashでそれを行うにはどうすればよいですか?パイプを使用しますか?フルオンのスクリプトでより冗長なif/thenステートメントを使用しますか?
ファイル名に新しい行、タブ、スペース、またはglobの組み合わせが含まれていて一致する可能性がある場合は、どれもわかっていない場合、1回限りのケースの方が簡単です。
mv $(grep -L Attachments *) dest_dir
あなたがしたいことは、パイプとgrep
s -Z
オプションを使用することです:
GNU grepおよびmvの使用
grep -LZ -- Attachments * | xargs -0 mv -t target_directory
-Z
とxargs -0
を組み合わせると、特殊文字を含むファイル名を処理できます。
BSD grepとmvを使用(MacOS Xと同様)
grep -L --null -- Attachments * |
while IFS= read -r -d "" file; do
mv "./$file" target_directory
done
BSDでは、grep -Z
は解凍を意味し、grep --null
はBSDとGNUの両方で機能します。 BSD mv
にはオプションがありません-t