Linux 将文本文件合并到一个文本文件中

Linux 将文本文件合并到一个文本文件中,linux,shell,Linux,Shell,我有如下要求。 我正在使用linux 我有一组文本文件,如text1.txt、text2.txt、text3.txt。 现在我将合并成一个最终文本文件 text1.txt 1 NULL NULL 4 text2.txt 1 2 NULL 4 a b c d 1 1 a 2 b c 4 4 d 1 1 a NULL 2 b NULL NULL c 4 4 d text3.txt 1 2

我有如下要求。 我正在使用linux

我有一组文本文件,如
text1.txt、text2.txt、text3.txt
。 现在我将合并成一个最终文本文件

text1.txt

1    
NULL    
NULL    
4
text2.txt

1    
2    
NULL    
4
a    
b    
c    
d
1 1 a   
2 b    
c  
4 4 d
1 1 a
NULL 2 b
NULL NULL c
4 4 d
text3.txt

1    
2    
NULL    
4
a    
b    
c    
d
1 1 a   
2 b    
c  
4 4 d
1 1 a
NULL 2 b
NULL NULL c
4 4 d
我正在使用以下命令:

paste -d ' ' text1.txt text2.txt text3.txt  >> text4.txt
我得到的是:

text4.txt

1    
2    
NULL    
4
a    
b    
c    
d
1 1 a   
2 b    
c  
4 4 d
1 1 a
NULL 2 b
NULL NULL c
4 4 d
但是我希望输出如下

text4.txt

1    
2    
NULL    
4
a    
b    
c    
d
1 1 a   
2 b    
c  
4 4 d
1 1 a
NULL 2 b
NULL NULL c
4 4 d
注意:-NULL表示空格

我将这个文本4作为输入传递给另一个循环,所以这里我通过位置l读取变量


提前感谢

我希望您希望在
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”的粘贴会给出相同的精确结果

您可以使用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

awk'{a[FNR]=a[FNR]$0'}END{for(i=1;i
paste-d''f1 f2 f3
对我来说很好…我在第9paste“-d''行的末尾得到了未接受的语法。”正在给出我的要求。但是我必须从所有文本文件中剪切第一个位置。一旦我得到最终的文本文件,我将该文本文件传递给while循环。在while循环中,我将变量用于我的程序