删除文件内容行之后==“XXXXXXX”(Delete file contents after li

2019-09-28 18:26发布

我有一堆我需要清理的文件。 我需要删除线等于什么(该行也应该被移除)以下的所有行。

我怎样才能做到这在bash?

我只是需要如何删除线的例子,我可以循环所有的文件我自己。

Answer 1:

简单的方法就是告诉SED时,看到其退出。

sed -n '/xxxxxxx/q;p' input.txt


Answer 2:

您可以使用Perl:

perl -i.bak -pe 'exit if /xxxxxxx/' filename.txt ...

这将在地方替换文件。



Answer 3:

“sed的”是做最简单的方法,但如果你有一点更复杂的要求,您还可以使用“AWK”。

对于这种特殊的情况下,创建一个文件“foo.awk”有以下内容:

{
    if ($0 == "xxxxxx")
            exit
    else
            print $0
}

和从壳调用以下命令:

awk -f foo.awk $FILE_NAME


文章来源: Delete file contents after line == “xxxxxxx”
标签: linux bash