如何用bash中的引号包装输出行?

Dre*_*kes 1 bash command-line

基本上我想要在这个问题中执行逆操作.

我正在运行搜索,查找具有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)

Jon*_*ler 6

BSD grep提供了一个--null打印名称后跟空字节(而不是换行符)的选项.

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

无论BSD和GNU xargs采取-0的选项,以指示文件名称由空字节分开.

因此:

grep -URl --null ^M . | xargs -0 ...
Run Code Online (Sandbox Code Playgroud)

  • 这在这种特定情况下很有效,因为它避免了中间引用的表示.我仍然很好奇你如何制作这样一个引用的形式. (2认同)