[英]add a column from a specific line using awk
編輯:
我想在文件中添加一列,但只能從特定行開始。 要添加的列存儲在另一個文件中,該文件有幾列,我只想添加第三列。 與第二個文件相比,第一個文件有兩個額外的行(第一行和第二行)。 我還想在第二行(在本行的末尾)添加一個額外的字符串
這是一個顯示我想要的示例:
$ 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
$ 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
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.