我有以下文件

1:10177 rs367896724 A AC
1:10352 rs555500075 T TA
1:10616 rs376342519 CCGCCGTTGCAAAGGCGCGCCG C
1:11012 rs544419019 C G
1:11063 rs561109771 T G
1:13110 rs540538026 G A
1:13116 rs62635286 T G
1:13118 rs62028691 A G
1:13273 rs531730856 G C
1:13284 rs548333521 GT A

最后两列只能有值[ATCG]。我想把最后两列只有一封信的所有行都改成灰色
预期产量:
我有以下文件
1:11012 rs544419019 C G
1:11063 rs561109771 T G
1:13110 rs540538026 G A
1:13116 rs62635286 T G
1:13118 rs62028691 A G
1:13273 rs531730856 G C

我试过以下方法,但没有结果
grep -F '[ACTG]?\s[ACTG]?$' file | head
grep '[ACTG]?\s[ACTG]?$' file | head
grep -E '.?\s.?$' file
最后一个命令是:
1:10616 rs376342519 CCGCCGTTGCAAAGGCGCGCCG C
1:11012 rs544419019 C G
1:11063 rs561109771 T G
1:13110 rs540538026 G A
1:13116 rs62635286 T G
1:13118 rs62028691 A G
1:13273 rs531730856 G C
1:13284 rs548333521 G A

谢谢你的帮助!

最佳答案

如果最后两列中只需要一个字符,请使用前导空白字符。从你的描述来看,似乎也不应该有任何可选字符。
grep -E '\s.\s.$' file
或者
grep -E '(\s[ACTG]){2}$' file
两者都应该有效。

关于regex - 使用grep的乘法器问题,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/57186460/

10-12 15:16