我正在使用 Ubuntu。我有一个fileName.sh
包含 1000 行的文件,我必须删除该399 number
行,这个命令足以删除该行。
命令:-sed -i '399d' test.sh
此命令是否需要更改?您能否给我更多建议以从文件中删除该行?
答案1
使用行内容删除行比使用行号删除行更好(但仍然不安全)。如果要删除已知内容的行:
sed -i /{contents}/d in.sh
另一个解决方案是使用 grep -v:
grep -v '{contents}' <in.sh >out.sh
在这两种情况下,{contents} 都是与要删除的内容匹配的正则表达式,要知道,仅包含字母和数字以及一些特殊字符的字符串本身就是正则表达式,因此:
sed -i /somefile/d in.sh
grep -v 'somefile' <in.sh >out.sh
将从somefile
输入中删除包含 的任何行。但请记住,它们还可以匹配更多内容(例如somefile2
也会匹配),除非您开始使用更完整的正则表达式,例如使用^{contents}$
匹配完全是 的行{contents}
,排除包含{contents}
和其他内容的行。