Bash
將 grep 輸出給 rm
我正在嘗試將
grep
輸出傳遞到rm
,但它輸出無用的東西。是否需要任何開關rm
?或者可以rm
直接提供一個正則表達式嗎?ls | grep '^\[Daruchini'| rm
rm: 缺少操作數 嘗試使用 `rm –help’ 獲取更多資訊。
您需要使用
xargs
將標準輸入轉換為rm
.$ ls | grep '^Dar' | xargs rm
(注意文件名中的特殊字元;使用 GNU grep,您可能更喜歡
$ ls | grep -Z '^Dar' | xargs -0 rm
)
此外,雖然 shell 不使用正則表達式,但這是一個簡單的模式:
$ rm Dar*
(同時,我想我需要更多的睡眠。)
在這裡,讓 shell 過濾您想要的文件非常簡單。請注意,擴展模式的是外殼
Dar*
,而不是rm
命令。shell 執行的模式擴展稱為globbing。rm Dar*
在更複雜的情況下,查找
find
命令。