如果字符串匹配(两个文件),则仅打印“ +”或“-”

生物技术

如果找不到字符串,我只想打印'+'o'-'符号。基本上,我有两个文件:

输入文件1(制表符分隔):

HPNK_00457
HPNK_00458
HPNK_00459

输入文件2(制表符分隔):

HPNK_00457  AAA50325    1e-43   437 28  43  83  ATP-binding protein.
HPNK_00458  P25256  8e-43   429 28  43  82  RecName: Full=Tylosin resistance ATP-binding protein tlrC.
HPNK_00458  CAM96590    1e-42   429 27  42  87  ABC transporter ATP-binding protein [Streptomyces ambofaciens].

所需的输出(制表符分隔,保持文件1中字符串的顺序):

HPNK_00457 +
HPNK_00458 +
HPNK_00459 -

这是我到目前为止一直在使用的,但是需要更新:

while read vl; do grep "^$vl      " file2 || printf -- "- -\n" ; done < file1

谢谢,尝试每天在这里学习。

fedorqui'停止伤害'

您可以使用:

while read -r line
do
    grep -q "$line" f2 && echo "$line +" || echo "$line -"
done < f1

至于grep -q它是否匹配的东西才返回true,在这种情况下,我们打印的文件名++否则,我们打印的文件名+ -

它返回:

$ while read -r line; do grep -q "$line" f2 && echo "$line +" || echo "$line -"; done < f1
HPNK_00457 +
HPNK_00458 +
HPNK_00459 -

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

比较两个文件并仅打印与字符串不匹配的行的第一个单词

如何从文件中打印最后两个匹配的字符串

试图匹配两个文件上的相同字符串时无法打印出图案

如果字符串与两个关键字匹配,则验证字符串

Python:如何比较两个csv文件并在新文件中打印出匹配的字符串

如果在两个文件之间找到了相同的字符串,请不要再次打印

匹配 2 个字符串,然后打印两个匹配项

如何在两个文件中匹配字符串并替换字符串?

比较两个文件以进行匹配,如果找到重复的匹配项,则仅打印一个

如果出现在两个单独的列中,则打印字符串

仅当字符串中有两个方括号时才如何匹配?

匹配两个文件之间的行并标记匹配的字符串

是文件路径且包含特殊字符的两个标记之间的匹配字符串

匹配两个Python字符串中的字符

Python - 如果字符串与字符串不匹配,则仅打印一次

如果两个匹配字符串中的任何一个匹配,如何提取行?

如果一对列与两个字符串都不匹配,如何打印行

比较两个文件并根据匹配的子字符串提取行?

查找两个文件之间的子字符串匹配

匹配两个文件中的字符串并按特定顺序输出字段

同时提取具有两个匹配字符串的文件

从两个文本文件中检索匹配的字符串

批处理文件帮助仅在两个匹配的字符串之间复制文本

在Clojure中过滤两个文本文件之间的匹配字符串

两个文件中的子字符串模式匹配

匹配两个文本文件中的字符串并在 Clojure 中过滤

比较两个文件并打印匹配的字符串,上面一行一行,下面一行

比较两个不同字符串以匹配的排列

grep完全匹配字符串的两个部分