我有两个文件:
FILE1.TXT:
samplefolder_appendtext.txt [
1.23 34.2 12.4 5.34 56.3
12.2 24.1 1.42 21.4 1.24
42.1 12.4 12.4 56.5 2.53
1.24 4.64 2.23 1.42 1.42
1.45 12.4 45.2 12.4 35.2 ]
appendtext.txt:
1.12 34.1 12.4 53.1
12.3 12.4 45.2 23.2
12.4 34.1 34.5 56.3
12.2 34.2 12.3 34.2
12.4 34.2 12.4 12.1
第二个文件位于“samplefolder”文件夹
如何使用AWK
获取如下输出文件samplefolder_appendtext.txt [
1.23 34.2 12.4 5.34 56.3 1.12 34.1 12.4 53.1
12.2 24.1 1.42 21.4 1.24 12.3 12.4 45.2 23.2
42.1 12.4 12.4 56.5 2.53 12.4 34.1 34.5 56.3
1.24 4.64 2.23 1.42 1.42 12.2 34.2 12.3 34.2
1.45 12.4 45.2 12.4 35.2 12.4 34.2 12.4 12.1 ]
答案 0 :(得分:0)
考虑到您的2个输入文件,我们可以说file1
和file2
,并且正如 RavinderSingh13 所回答的那样,paste
命令会执行诀窍如下所示:
$ cat file1
samplefolder_appendtext.txt [
1.23 34.2 12.4 5.34 56.3
12.2 24.1 1.42 21.4 1.24
42.1 12.4 12.4 56.5 2.53
1.24 4.64 2.23 1.42 1.42
1.45 12.4 45.2 12.4 35.2 ]
$ cat file2
1.12 34.1 12.4 53.1
12.3 12.4 45.2 23.2
12.4 34.1 34.5 56.3
12.2 34.2 12.3 34.2
12.4 34.2 12.4 12.1
$ (head -2 file1; paste -d' ' <(sed '1,2d;s/ ]//g' file1) file2) | sed '$s/$/ ]/'
samplefolder_appendtext.txt [
1.23 34.2 12.4 5.34 56.3 1.12 34.1 12.4 53.1
12.2 24.1 1.42 21.4 1.24 12.3 12.4 45.2 23.2
42.1 12.4 12.4 56.5 2.53 12.4 34.1 34.5 56.3
1.24 4.64 2.23 1.42 1.42 12.2 34.2 12.3 34.2
1.45 12.4 45.2 12.4 35.2 12.4 34.2 12.4 12.1 ]
sed '1,2d;s/ ]//g' file1
用于删除file1末尾的前2行和最后]
paste -d' ' <(sed '1,2d;s/ ]//g' file1) file2
用于重定向sed的stdout,就像它是一个文件一样,并将其与file2一起传递给paste
命令,在此命令中将分隔符设置为空格。 (head -2 file1;...) | sed '$s/$/ ]/'
用于格式化输出文件以符合您的输出格式:添加file1的第2行并在输出]
的末尾添加。