【发布时间】:2019-01-31 21:53:58
【问题描述】:
有谁知道我如何在文件中搜索字符串,然后删除除第一次出现该模式的行之外的所有行?
例如,来自
sheep
cow
pig
pig
goat
到
pig
pig 是该模式的第一行。
我知道如何删除不包含模式的行:
sed -i -e '/PATTERN/!d' file
不过,不知道如何只保留第一次出现。
【问题讨论】:
-
grep pattern file | head 1? -
甚至更好
grep -m1 pattern file | sponge file -
@daniu 你有错字。我很确定您的意思是
head -1(或等效的head -n 1),因为head 1将尝试打开一个名为1的文件。