簡體   English   中英

使用awk從兩個文件中寫入一個兩列文件

[英]write a two column file from two files using awk

我有兩個文件,每個文件只有一欄

1
2
3

4
5
6

我想寫一個同時包含兩個元素的唯一文件

1 4
2 5
3 6

我認為用awk應該真的很簡單。

您可以嘗試paste -d ' ' <file1> <file2> (如果沒有-d ' '則分隔符為制表符。)

對於給定的示例, paste可以正常工作,但是它不能很好地處理可變長度的線。 一個不錯的鮮為人知的core-util pr提供了更靈活的解決方案:

$ pr -mtw 4 file1 file2
1 4
2 5
3 6 

可變長度示例:

$ pr -mtw 22 file1 file2
10         4
200        5
300,000,00 6

既然您問過awk這就是一種方法:

$ awk '{a[FNR]=a[FNR]$0" "}END{for(i=1;i<=length(a);i++)print a[i]}' file1 file2
1 4 
2 5 
3 6

使用awk

awk 'NR==FNR { a[FNR]=$0;next } { print a[FNR],$0 }' file{1,2}

說明:

  • NR==FNR將確保我們的第一個操作語句僅對第一個文件運行。
  • a[FNR]=$0 ,我們將第一個文件插入到數組中,行號為索引
  • 完成第一個文件后,我們移至第二步
  • 在這里,我們打印第一個文件的每一行以及第二個文件

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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