我有如下要求。 我正在使用linux
我有一组文本文件,如text1.txt ,text2.txt, text3.txt
。
现在我要合并成一个最终的文本文件。
text1.txt
1
NULL
NULL
4
text2.txt
1
2
NULL
4
text3.txt
a
b
c
d
我正在使用以下命令:
paste -d ' ' text1.txt text2.txt text3.txt >> text4.txt
我得到了:
text4.txt
1 1 a
2 b
c
4 4 d
但我希望输出如下
text4.txt
1 1 a
NULL 2 b
NULL NULL c
4 4 d
注意: - NULL表示空格
我将此text4传递给另一个循环作为输入,所以在这里我通过positionl读取变量
提前致谢
答案 0 :(得分:0)
我希望您希望TAB在file4.txt
中分隔您的记录......这是怎么回事?
NLINES=$(wc -l file1.txt | awk '{print $1}')
rm -f file4.txt
for i in $(seq 1 $NLINES); do
rec1=$(sed -n "$i p" file1.txt)
rec2=$(sed -n "$i p" file2.txt)
rec3=$(sed -n "$i p" file3.txt)
echo -e "$rec1\t$rec2\t$rec3" >> file4.txt
done
但实际上是粘贴,没有" -d' '"给出了相同的结果!
答案 1 :(得分:0)
您可以使用AWK命令
实现相同功能awk '{a[FNR]=a[FNR]$0" "}END{for(i=1;i<=length(a);i++)print a[i]}' text1.txt text2.txt text3.txt >> text4.txt