所以我试图输出一个文件列表,这些文件将通过管道传输到另一个命令中,但需要对空格进行转义。我已经走了这么远:

find ./ | grep ".mkv$" | awk '{ print "\"" $0 "\"" }'

它输出的内容如下:
"/dir/File One.mkv"
"/dir/File Two.mkv"
"/File Three blah blah.mkv"

但我需要它输出:
"/dir/File\ One.mkv"
"/dir/File\ Two.mkv"
"/File\ Three\ blah\ blah.mkv"

是否有一个简单的命令/正则表达式可以添加到我的命令中?

最佳答案

使用 sed 替换空格前的一些反斜杠

命令

find ./ | grep ".mkv$" | awk '{ print "\"" $0 "\"" }' | sed 's/ /\\ /g'

输出
"./dir/File\ Two.mkv"
"./dir/File\ One.mkv"
"./File\ Three\ blah\ blah.mkv"

关于bash - 在bash命令行输出中转义空格,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/33061601/

10-13 08:41