Linux和Mac系统的sed命令稍有差别,其中,如果需要直接修改源文件,都需要加-i 参数
Mac下必须给-i指定参数值,如-i '.bak',系统将备份源文件,备份的文件名为 源文件名 + -i后的参数值,如源文件名为filename.txt,则备份文件名为filename.txt.bak,若不需要备份源文件,则需要将 -i 参数值为空字符串,即 -i ''
Linux下跟 -i 参数仅表示直接修改源文件。

删除指定行

  • 删除第123行
sed '123d' filename.txt

上述命令不会直接修改源文件,直接修改源文件,并将源文件备份为 filename.txt.bak 的命令如下(此处演示 -i 参数用法,下同):

sed -i '.bak' '123d' filename.txt # Mac
sed -i '123d' filename.txt # Linux (不会备份源文件)
  • 删除第99行和第123行
sed '99d;123d' filename.txt
About Me
后端开发工程师
GitHub Repos