为了匹配另一个文件,我需要删除第一列中所有下划线和下划线之后的数字。
我使用了sed工具,确实删除了第一列中下划线和下划线之后的下划线和字符串,但是我删除了后面的所有其他列,我想保留其他列(每列为用制表符分隔)。我是一个刚开始的新手。希望有人能告诉我该怎么做,谢谢。
需要处理的文本文件如下:(test.txt)
ENST00000515896.1 0.177145 0.356609
ENST00000425026.1_1 0.024620 0.049561
ENST00000286448.11_1_PAR_Y 8.465151 17.041147
ENST00000479687.6_1_PAR_Y 0.002051 0.004128
尝试sed
:
$ sed 's/_.\+//g' test.txt
预期结果:
ENST00000515896.1 0.177145 0.356609
ENST00000425026.1 0.024620 0.049561
ENST00000286448.11 8.465151 17.041147
ENST00000479687.6 0.002051 0.004128
实际结果:
ENST00000515896.1 0.177145 0.356609
ENST00000425026.1
ENST00000286448.11
ENST00000479687.6
答案 0 :(得分:2)
您可以通过简单的'_'
替换来完成sed
的修整,以及其余的后续操作,例如
$ sed 's/_[^ \t]*//' test.txt
ENST00000515896.1 0.177145 0.356609
ENST00000425026.1 0.024620 0.049561
ENST00000286448.11 8.465151 17.041147
ENST00000479687.6 0.002051 0.004128
仔细检查一下,如果还有其他问题,请告诉我。
答案 1 :(得分:0)
您可以尝试使用Perl,
$ perl -pe ' s/_.+?\s/ /g' kdong.txt
ENST00000515896.1 0.177145 0.356609
ENST00000425026.1 0.024620 0.049561
ENST00000286448.11 8.465151 17.041147
ENST00000479687.6 0.002051 0.004128