为了匹配另一个文件,我需要删除第一列中所有下划线和下划线之后的数字。
我使用了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
最佳答案
您可以通过简单的'_'
替换来完成对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
仔细检查一下,如果您还有其他问题,请告诉我。
关于linux - 如何删除栏中的下划线和下划线后的数字?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/53939376/