用法
测试文件
s 替换
替换 s/xxx/xxx
示例: 将 gggg 替换为 test
替换某行为xxx ns/.*/xxxx
示例: 替换第二行内容为 xxxx
在某行后追加内容 ns/.*/&xxxx
示例: 在第三行内容后追加 ----
替换数字 s/[0-9]/xxxx (sed不支持 \d)
示例: 替换数字为 ---
代指某一部分使用() s/(xxx)(xxx)/\1\2/
示例: 在数字与内容之间插入内容
语法中的 / 可以替换为其他任意字符, 如果不是替换模式, 需要 \ 声明
r 读取文件, w 写入文件
在某处读取文件 nr/
示例: 在第二行时读取文件
匹配到的内容写入文件 “/xxx/w file”
a(后缀) i(前缀) c(替换)
a, 在下一行追加内容
i, 在前一行追加内容
c, 替换内容
示例:
d 删除
示例: 删除 cccc 行
删除 第n行 nd
h, H, g, G
h 把模式空间的内容覆盖到暂存空间
H 把模式空间的内容追加到暂存空间
g 取出暂存空间内容, 覆盖到原内容处
G 取出暂存空间内容, 追加到原内容处
示例1: 将第一行的内容添加覆盖到暂存空间, 覆盖到第二行, 在第三行后追加
示例2: 把第一行内容放在末尾
示例3: 将第一行内容放在暂存空间, 替换第二行, 追加第三行内容到暂存空间, 在第四行后追加
小技巧:
示例: 当需要变量引用时, 最后一行若写在双引号里会被解释为一个变量, 此时可以分别写在单引号和双引号中, 转义 也可以
一般在写脚本时会修改源文件, 加上参数 -i 即可