我正在尝试并行运行命令并在引号中传递日期。但是它在参数中的空格之前添加了一个额外的反斜杠:
$ echo "2014-05-01 01:00" | parallel --dry-run foo \"{}\"
foo "2014-05-01\ 01:00"
如何在\
之后添加额外的2014-05-01
?
答案 0 :(得分:3)
从命令中删除转义的引号:
echo "2014-05-01 01:00" | parallel --dry-run foo "{}"
当parallel
用输入行替换{}
时,它知道该行应该是一个参数,因此它会为你逃避空间。您之前的命令只是将文字引号字符添加到参数的开头和结尾。
请注意,从shell的角度来看,以下内容是相同的
foo "2014-05-01 01:00"
foo 2014-05-01\ 01:00
因此,如果您试图强制输出看起来像第一个,请不要:它只是一个整容差异。