gpt4 book ai didi

awk - 打印具有多个定界符的相似列的行

转载 作者:行者123 更新时间:2023-12-04 15:58:52 28 4
gpt4 key购买 nike

我有两个文件:

文件1.txt

dn_id101_400_CT_TC    string1
dn_id111_60_TT_AA string2

文件2.txt

dn_id101_400_XX_XX    diffstring1
dn_id400_40_XY_YX diffstring2
dn_id111_60_GG_CC diffstring3

如果 file1.txt 中由 _ 分隔的前三个元素出现在 file2.txt 中的行中,我想打印 file2.txt 中的行。这是我想要的输出:

dn_id101_400_XX_XX    diffstring1
dn_id111_60_GG_CC diffstring3

有没有办法做到这一点?也许通过更改 awk 的分隔符?我不确定如何在 awk 命令中处理多个定界符。这是我想使用的示例:

awk -F"\t" 'FNR==NR {a[$1]; next}; $1 in a' file1.txt file2.txt

最佳答案

使用cutpastejoinsort 和函数定义复制awk 的替代解决方案 功能

$ f() { paste <(cut -d_ -f1-3 ${1}) ${1} | sort; }; \
join -o2.2,2.3 <(f file1) <(f file2)

dn_id101_400_XX_XX diffstring1
dn_id111_60_GG_CC diffstring3

创建连接的键和排序,选择列输出,定义函数用于消除重复代码。

关于awk - 打印具有多个定界符的相似列的行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35856349/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com