如何解决如何从匹配行之后删除文件中的所有行?
如果您不想打印匹配的行(或以下任何行):
sed -n '/The second line/q;p' inputfile
这表示“当您到达与模式退出匹配的行时,否则打印每行”。该-n
选项可防止隐式打印,并且p
需要使用该命令显式打印行。
要么
sed '/The second line/,$d' inputfile
这表示“从输出中删除所有行,从匹配的行开始,一直到文件的末尾”。
但是第一个更快。但是,它将完全退出处理,因此,如果您有多个文件作为参数,则第一个匹配文件之后的文件将不被处理。在这种情况下,删除形式更好。
如果确实要打印匹配的行,但不打印以下任何行:
sed '/The second line/q' inputfile
这表示“打印所有行并在达到匹配的行时退出”(-n
不使用该选项(无隐式打印))。
有关其他信息,请参见man sed。
解决方法
我有一个由几行文本组成的文件:
The first line
The second line
The third line
The fourth line
我有一个字符串,其中之一是: The second line
我要删除字符串,并在文件中后,所有行,因此它会删除The third line
,并The fourth line
在除了字符串。该文件将变为:
The first line
我已经在Google上搜索了一个解决方案,似乎应该使用sed
。就像是:
sed 'linenum,$d' file
但是如何找到字符串的行号?或者,我还应该怎么做?
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。