【发布时间】:2011-12-25 11:24:03
【问题描述】:
如何删除sh中以“string”开头的所有行?我正在考虑使用 sed 命令。
【问题讨论】:
如何删除sh中以“string”开头的所有行?我正在考虑使用 sed 命令。
【问题讨论】:
grep -v '^string' yourfile.txt > stripped.txt
【讨论】:
mv tempfile origfile。如果您想要真正的就地编辑,则需要使用 sed/perl/awk。
要做到这一点,如果你的 sed 支持 -i 选项,你可以这样做:
sed -i '/^string/d' 输入文件【讨论】:
-i 时需要一个文件扩展名来备份,在 OS X 中你必须非常迂腐,所以明确地使用单引号:sed -i '' '/^string/d' input-file
sed 甚至不支持 -i!我个人的偏好是永远不要使用 -i 而是使用 shell 进行重定向。
-e?
您的答案中的 sed 和 grep 缺少他们的朋友 awk:
awk '!/^string/' inputfile > resultfile
【讨论】:
你可以在 Ex 模式下使用 Vim:
ex -sc g/^string/d -cx file
g选择所有匹配的行
d删除
x保存并关闭
【讨论】: