如果第n个空格后的字母符合条件,如何删除一行?

时间:2017-01-06 15:20:18

标签: bash awk sed cut

我有一个大型文本文件,其数据如下所示:

ATOM 3515 CA GLY C 43 1.094 36.439 24.619 1.00 44.14 C

如何删除一行,具体取决于第四个空格后的字符是否为' C'?我已经看到了使用cut喜欢

的方法
cut -f1,4 -d' ' 

删除了比赛之外的所有内容。

有没有办法为整条生产线做到这一点?我可以通过其他方式看到一些方法,但是我想在第四空间专门做这件事,这样我就可以明确(或更多)它不会解析出来错误的位在文件深处的某处。

1 个答案:

答案 0 :(得分:3)

  

如何删除一行,具体取决于第四个空格后的字符是否为'C'

您可以使用awk:

awk '$5 !~ /^C/' file
  • $5是字段#5,即第4个空格后的字段
  • /^C/是断言第5个字段以C
  • 开头的检查

您也可以使用substr函数获得相同的输出:

awk 'substr($5, 1, 1) != "C"' file