我想删除所有包含 string 的文本foo。
我可以通过 列出所有文件ack-grep foo,但我找不到删除所有文件的方法,例如像这样的-exec rm {}选项find.
如何删除包含特定字符串的所有文件?
使用 GNU xargs:
ack -l --print0 foo | xargs -r0 rm --
Run Code Online (Sandbox Code Playgroud)
ack's--print0和 xargs'-0导致 ack 和 xargs 使用 NUL 作为分隔符来写入和读取,这保证了正确的文件名处理。没有它,xargs将接受更广泛的字符作为分隔符。