基本上我想要在这个问题中执行逆操作.
我正在运行搜索,查找具有Windows行结尾(\r\n)的文件,因为我想删除它们.
$ grep -URl ^M .
Run Code Online (Sandbox Code Playgroud)
一些返回的文件名称中包含空格:
./file name 1.txt
./file name 2.txt
Run Code Online (Sandbox Code Playgroud)
为了将其传递给另一个工具xargs,我需要引用这些行.我怎样才能转换为此输出:
"./file name 1.txt"
"./file name 2.txt"
Run Code Online (Sandbox Code Playgroud)
BSD grep提供了一个--null打印名称后跟空字节(而不是换行符)的选项.
GNU grep提供具有相同语义的选项-Z或--null选项.
无论BSD和GNU xargs采取-0的选项,以指示文件名称由空字节分开.
因此:
grep -URl --null ^M . | xargs -0 ...
Run Code Online (Sandbox Code Playgroud)