编辑:
我想向文件添加一列,但只能从特定行开始。要添加的列存储在另一个文件中,该文件有几列,我只想添加第三列。与第二个文件相比,第一个文件有两个额外的行(第一行和第二行)。我还想在第二行(在此行的末尾)添加一个额外的字符串
这是一个显示我想要的示例:
$ 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
提前致谢
最佳答案
您可以使用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
关于bash - 使用 awk 从特定行添加列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32742089/