我有一堆我需要清理的文件。我需要删除等于某条线的所有行(该行也应该删除)。
我怎样才能在bash中做到这一点?
我只需要如何删除行的示例,我可以自己循环所有文件。
答案 0 :(得分:2)
最容易告诉sed在看到它时退出。
sed -n '/xxxxxxx/q;p' input.txt
答案 1 :(得分:0)
您可以使用Perl:
perl -i.bak -pe 'exit if /xxxxxxx/' filename.txt ...
这将替换文件。
答案 2 :(得分:0)
'sed'是最简单的方法,但如果您有更复杂的要求 你也可以使用'awk'。
对于这种特殊情况,请创建一个文件'foo.awk',其中包含以下内容:
{
if ($0 == "xxxxxx")
exit
else
print $0
}
并从shell调用以下命令:
awk -f foo.awk $FILE_NAME