我有一个如下所示的文件:
>TCONS_00000066_1 [3 - 170]
>TCONS_00000066_2 [174 - 206]
>TCONS_00000066_3 [2 - 223]
>TCONS_00000066_4 [210 - 281]
>TCONS_00000066_5 [227 - 316]
>TCONS_00000066_6 [1 - 324]
>TCONS_00000066_7 [285 - 338]
>TCONS_00000066_8 [335 - 373]
>TCONS_00000066_9 [342 - 377]
>TCONS_00000066_10 [328 - 465]
>TCONS_00000066_11 [377 - 487]
>TCONS_00000066_12 [469 - 546]
>TCONS_00000066_13 [390 - 551]
>TCONS_00000066_14 [518 - 556]
>TCONS_00000066_15 [537 - 490]
>TCONS_00006042_1 [9 - 62]
>TCONS_00006042_2 [87 - 146]
>TCONS_00006042_3 [150 - 203]
>TCONS_00006042_4 [2 - 220]
>TCONS_00006042_5 [1 - 255]
该文件以制表符分隔。我想只删除_1
and _2
....之后的每个>TCONS_0000****
.所有列的其余部分将按原样存在。
喜欢:
>TCONS_00000066 [3 - 170]
>TCONS_00000066 [174 - 206]
>TCONS_00000066 [2 - 223]
>TCONS_00000066 [210 - 281]
>TCONS_00000066 [227 - 316]
>TCONS_00000066 [1 - 324]
>TCONS_00000066 [285 - 338]
>TCONS_00000066 [335 - 373]
注意:每个>TCONS_*
包含8位数字,例如>TCONS_00000066"..."
,>TCONS_00987652"
答案1
这应该适合你
cat file.txt | sed 's/\([0-9]\)_[0-9]\+\t/\1\t/'
搜索一个数字(名为 \1),后跟一个下划线,后跟一个或多个数字,后跟一个制表符,然后替换为名为 \1 和一个制表符
答案2
使用awk:
awk -F'[_ ]' '{$3=""}1' file > newfile