如何将输出线包装在bash中的引号中



本质上,我希望在此问题中执行逆操作。

我正在运行搜索,寻找具有Windows行末尾的文件(rn),因为我想删除它们。

$ grep -URl ^M .

一些返回的文件的名称中有空格:

./file name 1.txt
./file name 2.txt

为了通过xargs将其传递给另一个工具,我需要引用这些行。如何改用此输出:

"./file name 1.txt"
"./file name 2.txt"

BSD grep提供了一个--null选项,以打印名称,然后是null字节(而不是newline)。

GNU grep提供了具有相同语义的-Z--null选项。

BSD和GNU xargs采用-0选项,以指示文件名被null字节分开。

因此:

grep -URl --null ^M . | xargs -0 ...

为了避免空间问题,我将新的行字符用作XARGS的分隔符,带有-d选项:

xargs -d 'n' ...

所以我的解决方案是:

grep -URl ^M . | xargs -d 'n' rm

相关内容

  • 没有找到相关文章

最新更新