2個文件我有 文件1:如何合併在linux
line1
line2
line3
....
文件2:
date1
date2
date3
...
,其結果應該是:
line1, date1
line2, date2
line3, date3
...
是否有辦法在Linux上用awk(我認爲)在命令行上做這個工作? 非常感謝
2個文件我有 文件1:如何合併在linux
line1
line2
line3
....
文件2:
date1
date2
date3
...
,其結果應該是:
line1, date1
line2, date2
line3, date3
...
是否有辦法在Linux上用awk(我認爲)在命令行上做這個工作? 非常感謝
您可以使用awk
awk 'FNR==NR {a[NR]=$0;next} {print a[FNR]", "$0}' file1 file2
line1, date1
line2, date2
line3, date3
...., ...
FNR==NR {a[NR]=$0;next}
讀取第一個文件fil1
時,使用它存儲在陣列a
{print a[FNR]", "$0}
打印出數組a
行號作爲索引和數據來自file2
謝謝,以及如何改變這個使'line1,date1 line2,date1 line3,date1'。我是新人awk –
@WalterSchrabmair你意識到Jotne是對另一個答案發表了評論,告訴你發佈一個新問題的人不是嗎? –
@Jotne請你能解釋awk聲明嗎?我是新人,想學習。它效果很好。 –
paste
命令就可以了:
paste -d, file1 file2
不是一個大問題,但是這並不會給''後面的空間, – Jotne
@藍色月亮非常感謝。我jsut意識到我也有以下問題:FILE1:'line1 line2 line3'和FILE2:'date1'結果應該是date1合併到file1的每一行。也有解決方案嗎? –
@WalterSchrabmair是的 –
我希望這可以解決您的查詢。 根據您的要求調整此代碼。
paste <(awk 'BEGIN { FS=":";OFS="\t";ORS="\n\n"} { print $1 } END{}' file1.txt) <(awk 'BEGIN { FS=":";OFS="\t";ORS="\n\n"} { print $1 } END{}' file2.txt) >file3.txt
只要使用'粘貼'。 –
使用'pr'或'paste' –