【发布时间】:2017-12-14 13:56:36
【问题描述】:
我正在尝试在 2 个文件之间查找匹配的字符串。
例如:
文件 1:
A2M,0.00351888
A2M-AS1,0.00131091
A3GALT2,0.00966505
A4GALT,0.108364
AACS,0.0830823
AACSP1,0.00264056
AADACL2-AS1,0.0318584
AADACL4,0.00384096
AAED1,0.216966
文件 2:
chr1 33772366 33786699 A3GALT2 1 -
chr22 43088126 43116876 A4GALT 1 -
chr12 125549924 125627871 AACS 1 +
chr5 178191863 178203277 AACSP1 1 -
chr1 12704565 12727097 AADACL4 1 +
chr9 99403532 99417599 AAED1 1 -
chr8 117950463 117956239 AARD 1 +
chr7 121713597 121784344 AASS 1 -
chr7 48211056 48687091 ABCA13 1 +
chr1 94458393 94586705 ABCA4 1 -
chr17 66970772 67057136 ABCA9 1 -
我想提取文件 2 中第 4 列等于文件 1 中第一列的行。 我为它写了这个命令:
cat file | cut -d ',' -f1 | grep -wFf - file2 > match_file
但是当它有另一个字符时 - 不是 [a-z] 像:APCDD1L-AS1。
它只需要 APCDD1L 并给出不正确的结果。
我读到 grep -w 仅适用于“真实”单词,所以我想这就是问题所在。
我该如何解决? (查找整个匹配字符串)
【问题讨论】: