すぐにファイルセットを削除したいです。
ls | egrep \^New
出力は予想通りです。
New 1
New 2
New 3
しかし、パイプラインを続ける
| xargs -L rm
スペースで区切られた入力を削除してみてください。
rm: New: No such file or directory
rm: 1: No such file or directory
私は何を見逃していますか?
答え1
解析されないls
これはトリックを行う必要があります:
rm New*
xargs
引数がデフォルトで空白に分割され、などで動作するため、メソッドはrm
失敗します。改行文字を分割することでこの問題を解決できますが、改行文字を含むファイル名では機能しません。New
1
New
2
答え2
はい、そうです。xargs
ファイル名をスペースで区切ってください。 GNUを使用している場合は、xargs
このオプションを使用して改行文字を区切り文字として使用できます-d
。例:
ls | egrep \^New | xargs -d '\n' rm