乐趣区

Unix-常用命令-SED

文件编辑

SED

SED 命令一般用于替换文件中的文本。匹配内容支持正则表达式。

基本用法

// 替换 a.txt 文件中的 hello 为 hi,默认替换掉每一行的第一个 hello
$ sed 's/hello/hi/' a.txt

flag

$ sed 's/hello/hi/<flag>' a.txt

几个不同的 flag

  • <n>: 如 1, 2, 3 等整数,替换掉每行的第 n 个匹配
  • g: 替换掉全部匹配
  • <n>+g: 如 2g, 则表示替换掉每行的第 2 个到所有剩余的匹配
  • p: 将包含匹配项的行在输出中打印两遍
  • d: 删除匹配项所在的行

特定行

$sed '3 s/hello/hi/' a.txt // 只替换第 3 行
$sed '1,3 s/hello/hi/' a.txt // 替换第 1 到 3 行
$sed '3,$ s/hello/hi/' a.txt // 替换第 3 到末行
$sed '1,3d' a.txt // 删除第 1 到 3 行 
退出移动版