Sed 将两个文件中的一列合并为第三个文件
我有两个文件a.txt和b.txt,其中包含以下数据Sed 将两个文件中的一列合并为第三个文件,sed,awk,Sed,Awk,我有两个文件a.txt和b.txt,其中包含以下数据 $ cat a.txt 0x5212cb03caa111e0 0x5212cb03caa113c0 0x5212cb03caa115c0 0x5212cb03caa117c0 0x5212cb03caa119e0 0x5212cb03caa11bc0 0x5212cb03caa11dc0 0x5212cb03caa11fc0 0x5212cb03caa121c0 $ cat b.txt 36 65 fb 60 7a 5e 36 65 fb
$ 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
我想生成第三个文件c.txt,其中包含
0x5212cb03caa111e0 36 65 fb 60 7a 5e
0x5212cb03caa113c0 36 65 fb 60 7a 64
0x5212cb03caa115c0 36 65 fb 60 7a 6a
我可以使用awk实现这一点吗?我该怎么做 使用
粘贴命令:
paste a.txt b.txt
使用粘贴命令:
paste a.txt b.txt
粘贴确实是最短的解决方案,但是如果您正在寻找问题中所述的awk解决方案,那么:
awk 'FNR==NR{a[++i]=$0;next} {print a[FNR] "\t" $0}' a.txt b.txt
粘贴确实是最短的解决方案,但是如果您正在寻找问题中所述的awk解决方案,那么:
awk 'FNR==NR{a[++i]=$0;next} {print a[FNR] "\t" $0}' a.txt b.txt
以下是一个awk解决方案,它一次只在内存中存储两行:
awk '{ getline b < "b.txt"; print $0, b }' OFS='\t' a.txt
awk'{getline b
a.txt
中的行隐式存储在$0
中,对于a.txt
中的每一行,由getline
从b.txt
中读取一行,这里有一个awk解决方案,一次只在内存中存储两行:
awk '{ getline b < "b.txt"; print $0, b }' OFS='\t' a.txt
awk'{getline b
a.txt
中的行隐式存储在$0
中,对于a.txt
中的每一行,getline
从b.txt
中读取一行