添付ファイルという単語のないファイルを見つけるために、このgrepコマンドがあります。
grep -L -- Attachments *
そのコマンドから出力されるすべてのファイルを移動したい。それをbashでどのように行うのですか?パイプを使用しますか?完全なスクリプトで、より冗長なif / thenステートメントを使用しますか?
添付ファイルという単語のないファイルを見つけるために、このgrepコマンドがあります。
grep -L -- Attachments *
そのコマンドから出力されるすべてのファイルを移動したい。それをbashでどのように行うのですか?パイプを使用しますか?完全なスクリプトで、より冗長なif / thenステートメントを使用しますか?
回答:
あなたがしたいことは、パイプとgreps -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 --nullBSDやGNUの両方で動作します。BSDにmvはオプションがありません-t