使用sed保留行的开头
我有一个文件,其中有些行以a> 对于这些行,并且只有这些行,我想保留前11个字符 如何使用sed实现这一点? 或者其他更好的方法 谢谢使用sed保留行的开头,sed,Sed,我有一个文件,其中有些行以a> 对于这些行,并且只有这些行,我想保留前11个字符 如何使用sed实现这一点? 或者其他更好的方法 谢谢 Muriel让我们从这个测试文件开始: $ cat file line one with something or other >1234567890abc other line in file 要仅保留以>开头的行的前11个字符,同时保留所有其他行: $ sed -r '/^>/ s/(.{11}).*/\1/' file line one wi
Muriel让我们从这个测试文件开始:
$ cat file
line one with something or other
>1234567890abc
other line in file
要仅保留以>
开头的行的前11个字符,同时保留所有其他行:
$ sed -r '/^>/ s/(.{11}).*/\1/' file
line one with something or other
>1234567890
other line in file
$ sed -rn '/^>/ s/(.{11}).*/\1/p' file
>1234567890
要仅保留以>
开头的行的前11个字符并删除所有其他行,请执行以下操作:
$ sed -r '/^>/ s/(.{11}).*/\1/' file
line one with something or other
>1234567890
other line in file
$ sed -rn '/^>/ s/(.{11}).*/\1/p' file
>1234567890
以上内容已通过GNU sed进行了测试。对于BSD sed,将-r
选项替换为-E
说明:
是一种条件。这意味着后面的命令仅适用于以/^>/
是一个替换命令。它仅用前11个字符替换整行s/(.{11})。*/\1/
打开扩展正则表达式格式,消除了对某些转义字符的需要-r
关闭自动打印。当-n
生效时,只有当我们明确要求打印行时,才打印行。在上面的第二种情况下,这是通过在替换命令之后添加-n
来完成的p
其他线路呢?你想保留它们还是丢弃它们?太棒了!!谢谢你的解释!!