已复制到剪贴板

sed

`sed` 是一个流行的文本处理工具。它可以用来编辑和转换文本文件中的文本,并支持广泛的正则表达式匹配和替换功能。
例如:s/原始文本/替换文本/g

例子

  1. 替换文件中的文本:
sed 's/原始文本/替换文本/g' 文件名
  1. 仅显示行号为奇数的行:
sed -n '1~2p' 文件名
  1. 删除文件中的指定行:
sed -i '2d' 文件名
  1. 显示文件中匹配模式的行:
sed -n '/匹配模式/p' 文件名
  1. 显示文件中不匹配模式的行:
sed -n '/匹配模式/!p' 文件名
  1. 从文件的第 n 行开始显示到文件结尾:
sed -n 'n,$p' 文件名
  1. 在文件的第 n 行之前插入新的一行:
sed -i 'n i 新的一行' 文件名
  1. 在文件的第 n 行之后插入新的一行:
sed -i 'n a 新的一行' 文件名
  1. 删除文件中匹配模式的行:
sed -i '/匹配模式/d' 文件名
  1. 将文件中的文本全部替换成新的文本:
sed -i 's/原始文本/新的文本/g' 文件名

详解参数-i

当你在**sed命令中使用-i参数时,sed会在编辑原始文件时创建一个备份文件,其文件名是原始文件名后面紧跟着你提供的扩展名。然后,sed**会将修改后的内容写入原始文件,从而达到修改文件的目的。

例如,假设有一个名为**example.txt的文件,你可以使用以下命令来使用sed**编辑该文件并在修改时创建备份文件:

sed -i.bak 's/foo/bar/g' example.txt

在这个命令中,**-i.bak表示在编辑过程中会创建名为example.txt.bak的备份文件,然后's/foo/bar/g'表示将文件中的所有“foo”替换为“bar”。这个操作会直接修改example.txt文件,并将修改前的内容备份到example.txt.bak**文件中。

需要注意的是,**-i参数可以使编辑操作更方便,但也需要小心使用,特别是在处理重要的文件时。如果不小心操作,可能会导致数据丢失或不可逆的更改。在使用-i**参数时,建议事先备份重要文件,以便在需要时可以恢复到之前的状态。