编辑:
我想在文件中添加一列,但只能从特定的行开始。要添加的列存储在另一个文件中,该文件有多列,我只想添加第三列。与第二个文件相比,第一个文件有两个额外的行(第1行和第2行)。我还想在第二行(在这一行的末尾)添加一个额外的字符串
这是一个显示我想要的例子:
$ cat file1.txt
file1
index place value
1 A 0.1
2 A 0.3
3 B 0.1
4 B 0.6
$ cat file2.txt
A 1 0.3
A 1 0.4
B 1 0.4
B 1 0.6
这就是理想的输出
$ cat output.txt
file1
index place value score
1 A 0.1 0.3
2 A 0.3 0.4
3 B 0.1 0.4
4 B 0.6 0.6
提前致谢
答案 0 :(得分:1)
您可以使用tail
paste
和echo
:
awk 'NR==1; NR==2{print $0, "score"} NR>2{a[++i]=$0} NR>FNR{print a[FNR], $NF}' file1 file2
file1
index place value score
1 A 0.1 0.3
2 A 0.3 0.4
3 B 0.1 0.4
4 B 0.6 0.6
PS:要获得格式化的表格输出,请使用column -t
:
awk 'NR==1;NR==2{print $0, "score"} NR>2{a[++i]=$0} NR>FNR{print a[FNR], $NF}' file1 file2|
column -t
file1
index place value score
1 A 0.1 0.3
2 A 0.3 0.4
3 B 0.1 0.4
4 B 0.6 0.6
答案 1 :(得分:1)
$ paste -d' ' file1.txt <(sed '1s/^/\nscore\n/' file2.txt)
file1
index place value score
1 A 0.1 0.3
2 A 0.3 0.4
3 B 0.1 0.4
4 B 0.6 0.6