尝试搜索但找不到任何实质内容
我有 2 个文件:
1:
asdfdata:tomatch1:asdffdataaa
asdfdata2:tomatch2:asdffdata33
asdf:tomatch3:asdfx
2:
bek:tomatch1:beke
lek:tomatch3:lekee
wen:tomatch2:wenne
我想匹配两者中的第二个 clolumn,通过行上的任何数据,然后将其打印到像这样的行:
asdfdata:tomatch1:asdffdataaa:bek:beke
asdfdata2:tomatch2:asdffdata33:wen:wenne
等等
我想 awk 最好,Match two files by column line by line - no key好像有点像这个!
感谢您的帮助!!
最佳答案
使用像这样的连接命令:
join -t":" -1 2 -2 2 <(sort -t":" -k 2 file1.txt) <(sort -t":" -k 2 file2.txt)
这是它的工作原理:
-t 用于分隔符
-1 - 来自第一个文件的第二个字段,以“:”分隔
-2 - 来自第二个文件的第二个字段,以“:”分隔
join 需要在我们想要加入的字段上对输入文件进行排序,因此您会看到带有 -k 选项和 t 选项指定的第二个字段的排序命令再次使用定界符作为冒号 (:) 并在按以下方式对输入进行排序后将输入传递给 join 命令第二场。
关于linux - 按列匹配并打印到行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29327738/