如果 nth space 之后的字母符合条件,如何删除一行?
How to delete a line if the letter after nth space matches a criteria?
我有一个大文本文件,其中的数据如下所示:
ATOM 3515 CA GLY C 43 1.094 36.439 24.619 1.00 44.14 C
如何根据第 4 个 space 之后的字符是否为 'C' 来删除一行?我已经看到了一种使用 cut
like
的方法
cut -f1,4 -d' '
这会删除匹配之外的所有内容。
有没有办法对整条线做到这一点?我可以通过其他方式看到一些方法,但我想专门在第 4 次 space 之后进行,这样我就可以确定(或更多)它不会解析出错误文件深处某处的位。
How would I delete a line, depending on whether the Character after the 4th space is a 'C'
您可以为此使用 awk:
awk ' !~ /^C/' file
</code> 是第 5 个字段,即第 4 个 space</li> 之后的字段
<li><code>/^C/
是一个检查以断言第 5 个字段以 C
开头
您也可以使用 substr
函数获得相同的输出:
awk 'substr(, 1, 1) != "C"' file
我有一个大文本文件,其中的数据如下所示:
ATOM 3515 CA GLY C 43 1.094 36.439 24.619 1.00 44.14 C
如何根据第 4 个 space 之后的字符是否为 'C' 来删除一行?我已经看到了一种使用 cut
like
cut -f1,4 -d' '
这会删除匹配之外的所有内容。
有没有办法对整条线做到这一点?我可以通过其他方式看到一些方法,但我想专门在第 4 次 space 之后进行,这样我就可以确定(或更多)它不会解析出错误文件深处某处的位。
How would I delete a line, depending on whether the Character after the 4th space is a
'C'
您可以为此使用 awk:
awk ' !~ /^C/' file
</code> 是第 5 个字段,即第 4 个 space</li> 之后的字段 <li><code>/^C/
是一个检查以断言第 5 个字段以C
开头
您也可以使用 substr
函数获得相同的输出:
awk 'substr(, 1, 1) != "C"' file