shell - 如何防止并行向我的命令添加额外的转义?

标签 shell parallel-processing escaping

我正在尝试并行运行命令并在引号中传递日期。但它在参数中的空格之前添加了一个额外的反斜杠:

$ 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/

相关文章:

python - 你能用 GPU 加速 python 中的简单数学方程吗,例如 : y = 1/x and how do you do it?

hadoop - 在 Hadoop 上并行化执行决策树 ID3/C4.5

php - 带有从 PHP 代码打印的单引号的 Javascript 字符串

bash - Shell 脚本获取两年之间的值

bash - 计划执行返回错误值的 shell 脚本(使用 cron 计划执行脚本)(Ubuntu 20.04.4 LTS)

php - Linux bash脚本模拟回车

ajax - HTTP 并行请求和 AJAX/轮询

java - 使用 HTML 实体转义字符串时,如果我使用 UTF-8,是否可以安全地跳过 Unicode 127 以上的编码字符?

bash - 如何使用 sed 从 bash 中的字符串中删除转义字符?

linux - 在 Bash 中从最后到第一个输出文件行