Gnu 并行输入(例如来自管道)自动将包含空格或符号(例如/和 )的输入单引号括起来: 这是有原因的吗?如何在没有任何引号的情况下按原样打印输入?
我尝试使用各种并行选项(如 -q)或使用不同类型的引号将输入嵌入到并行命令中,但是,当输入包含/符号的空格时,它总是以单引号显示。
以下是我尝试过的命令行:
awk '{print "ftp://"$1}' assembly2contig.lst | parallel --dry-run wget '{}'
输出将是
wget 'ftp://mypath'
awk '{print $1}' assembly2contig.lst | parallel --dry-run wget 'ftp://{}'
此命令有效,但我需要在并行内构建我的路径,这对我的情况来说不是很方便,例如当我的输入文件已经包含路径时。
我想得到
wget ftp://mypath
使用 ftp://mypath作为来自管道的并行输入(例如 awk)
最佳答案
引用的原因是为了避免 xargs 中的默认行为:
echo 'two spaces lost' | xargs echo
echo 'two spaces kept' | parallel echo
要避免这种情况,您可以使用 eval
:
echo 'two spaces lost' | parallel eval echo
关于unix - 为什么一些 GNU 并行输入包含引号?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56566416/