Linux 将文本文件合并到一个文本文件中
我有如下要求。 我正在使用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
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;ipaste-d''f1 f2 f3
对我来说很好…我在第9paste“-d''行的末尾得到了未接受的语法。”正在给出我的要求。但是我必须从所有文本文件中剪切第一个位置。一旦我得到最终的文本文件,我将该文本文件传递给while循环。在while循环中,我将变量用于我的程序