如果找不到字符串,我只想打印'+'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
谢谢,尝试每天在这里学习。
您可以使用:
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] 删除。
我来说两句