如何从包含 sh 扩展名的文件中删除一行?

如何从包含 sh 扩展名的文件中删除一行?

我正在使用 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}和其他内容的行。

相关内容