如何在GNU Parallel中正确拼接字符串?文件名拼接异常排查
问题原因
你的fastalist文件第一行末尾带有Windows风格的回车符(\r),当parallel输出{}.txt时,\r会让终端光标回到行首,随后输出的.txt会覆盖掉原字符串的前4个字符(1paz),最终显示为.txtA。第二行没有这个问题,说明它是Unix风格的换行(仅\n)。
解决方法
提供三种可行方案:
转换文件换行格式:用
dos2unix工具将文件转为Unix格式:dos2unix BuildFeatures/example/fastalist之后再执行你的原命令即可正常输出。
过滤回车符后再处理:在管道中加入
tr -d '\r'去掉所有回车符:cat BuildFeatures/example/fastalist | tr -d '\r' | parallel -j 5 echo {}.txt用parallel自带参数处理:使用
--trim r参数自动去除行尾的回车符:parallel -j 5 -a BuildFeatures/example/fastalist --trim r echo {}.txt(这里直接用
-a参数指定输入文件,比cat管道更简洁)
内容的提问来源于stack exchange,提问作者WuGuo
相关产品推荐
相关产品推荐

