1

次のデータを含む a.txt と b.txt の 2 つのファイルがあります。

$ cat a.txt
0x5212cb03caa111e0
0x5212cb03caa113c0
0x5212cb03caa115c0
0x5212cb03caa117c0
0x5212cb03caa119e0
0x5212cb03caa11bc0
0x5212cb03caa11dc0
0x5212cb03caa11fc0
0x5212cb03caa121c0

$ cat b.txt
36 65 fb 60 7a 5e
36 65 fb 60 7a 64
36 65 fb 60 7a 6a
36 65 fb 60 7a 70
36 65 fb 60 7a 76
36 65 fb 60 7a 7c
36 65 fb 60 7a 82
36 65 fb 60 7a 88
36 65 fb 60 7a 8e

を含む 3 番目のファイル c.txt を生成したい

0x5212cb03caa111e0      36 65 fb 60 7a 5e
0x5212cb03caa113c0      36 65 fb 60 7a 64 
0x5212cb03caa115c0      36 65 fb 60 7a 6a

awkを使用してこれを達成できますか? どうすればいいですか?

4

3 に答える 3

3

pasteコマンドを使用:

paste a.txt b.txt
于 2013-08-26T05:43:52.810 に答える
1

これは、一度に 2 行だけをメモリに格納する awk ソリューションです。

awk '{ getline b < "b.txt"; print $0, b }' OFS='\t' a.txt

からの行a.txtは暗黙的に に格納され、$0a.txtの各行は によって読み取らb.txtgetlineます。

于 2013-08-26T07:54:23.290 に答える
1

貼り付けは実際には最短のソリューションですが、問題に記載されている awk ソリューションを探している場合は、次のようになります。

awk 'FNR==NR{a[++i]=$0;next} {print a[FNR] "\t" $0}' a.txt b.txt
于 2013-08-26T05:49:32.923 に答える