我正在尝试并行运行命令并在引号中传递日期。但它在参数中的空格之前添加了一个额外的反斜杠:
$ echo "2014-05-01 01:00" | parallel --dry-run foo \"{}\"
foo "2014-05-01\ 01:00"
如何在 2014-05-01
之后并行不添加额外的 \
?
最佳答案
从命令中删除转义引号:
echo "2014-05-01 01:00" | parallel --dry-run foo "{}"
当 parallel
用输入行替换 {}
时,它知道该行应该是单个参数,因此它会为您转义空格。您之前的命令只是将文字引号字符添加到参数的开头和结尾。
请注意,从 shell 的角度来看,以下内容是相同的
foo "2014-05-01 01:00"
foo 2014-05-01\ 01:00
因此,如果您试图强制输出看起来像第一个输出,请不要这样做:这只是外观上的差异。
关于shell - 如何防止并行向我的命令添加额外的转义?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23413988/