我有这样的台词:
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做到这一点?我尝试了许多不同的方法,但它们都没有接近。谢谢!
答案 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