簡體   English   中英

使用 awk 從特定行添加一列

[英]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 pasteecho

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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM