删除第一个冒号和第一个选项卡之间的所有内容

时间:2017-10-11 10:31:55

标签: linux bash sed

我有这样的台词:

MSTRG.203.1_294_561:MSTRG.203:nc:376:66.2526979530472:39.7492003264262  2   223 4   no

我希望删除第一个冒号和第一个标签之间的所有内容,因此结果应如下所示:

MSTRG.203.1_294_561 2   223 4   no

有没有办法用sed做到这一点?我尝试了许多不同的方法,但它们都没有接近。谢谢!

1 个答案:

答案 0 :(得分:1)

解决方案1: 如果您的Input_file与显示的示例相同,那么以下内容可能对您有所帮助。

awk -F':| ' '{print $1,$9,$12,$13,$16}'  Input_file

输出如下。

MSTRG.203.1_294_561 2 223 4 no

解决方案第二: 或者比之前的更短。

awk '{sub(/:.*/,"",$1)} 1'  Input_file

解决方案3: 此处也有sed解决方案。

sed 's/\([^:]*\)\([^ ]*\)\(.*\)/\1\3/'  Input_file