两个文件中的数据比较
我有两个制表符分隔的文件。
文件 1(10 行和 4 列,这些列可能不会填充到每行中):
Chra stra stpa NM1 NM2 NR1
Chrb strb stpb NR2 NM1
文件 2(25 行和 3 列):
Tg NM1 12
Tg NM3 3
Tg NR1 76
现在我想做的是比较当前每行中的 NM 和 NR 标识符文件 1 到文件 2i f 文件 2 中任何位置的 NR 标识符都匹配。它应该从文件 2 中提取 NR/NM 标识符的相应值。
文件 3 可能如下所示(例如 NM1):
chra stra stpa NM1 12
chra stra stpa NR1 76
对于 shell 脚本有什么建议吗?
I have two tab-delimited files.
File 1 (10 rows and say 4 columns, these columns might not be filled in each row):
Chra stra stpa NM1 NM2 NR1
Chrb strb stpb NR2 NM1
File 2 (25 rows and 3 columns):
Tg NM1 12
Tg NM3 3
Tg NR1 76
Now what I want to do, is to compare the NM and NR identifiers in present each row of file 1 to file 2i f anywhere in file2 NR identifier matches. It should extract the corresponding value of NR/NM identifier from file 2.
File 3 may look like this (say for NM1):
chra stra stpa NM1 12
chra stra stpa NR1 76
Any suggestions for a shell script?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
我会使用 Perl 脚本而不是 shell 脚本来完成这种事情。您可以使用 split() 函数获取一个包含每行所有“字段”的数组,从那里开始走下坡路。无需想出一个花哨的正则表达式。 这里
做这种事情的一个例子:
Rather than shell script, I'd do this kind of thing with a Perl script. You can use the split() function to get an array with all the "fields" for each line, and it's downhill from there. No need to think up a fancy regular expression. Here's
an example of doing this kind of thing: