如何使用Shell脚本将两个文本文件对应行合并为新文件单行
修正方案
你原脚本存在两处错误,对应你的两个问题调整方法如下:
- 要保证HC_01_Gist.txt内容在前:
paste命令的内容输出顺序和参数传入的文件顺序完全一致,你原来写的paste $B $A自然会把B文件内容放在前面,调换两个变量的顺序即可。 - 要保证对应行合并为同一行:
paste默认使用制表符作为两个文件行内容的分隔符,若源文件存在Windows格式的换行符也可能导致行拆分,指定分隔符为单个空格即可匹配你的预期格式。
修正后的完整脚本如下:
#(A) 排在前面的时序文件 A=HC_01_Gist.txt #(B) 排在后面的时序文件 B=HC_01_MNoFraming.txt #(C) 输出时序文件名 C=HC_01_MGNoFraming.txt #------------------------------------------------------------ # -d 参数指定拼接分隔符为单个空格 paste -d ' ' $A $B > $C
如果运行后仍存在行拆分的情况,先执行以下命令把源文件的Windows换行格式转为Unix格式即可:
dos2unix HC_01_Gist.txt HC_01_MNoFraming.txt
内容的提问来源于stack exchange,提问作者Lucas McKamey
相关产品推荐
相关产品推荐

