用法

测试文件
linux 三剑客之sed


s 替换

替换 s/xxx/xxx
示例: 将 gggg 替换为 test
linux 三剑客之sed


替换某行为xxx ns/.*/xxxx
示例: 替换第二行内容为 xxxx
linux 三剑客之sed


在某行后追加内容 ns/.*/&xxxx
示例: 在第三行内容后追加 ----
linux 三剑客之sed


替换数字 s/[0-9]/xxxx (sed不支持 \d)
示例: 替换数字为 ---
linux 三剑客之sed
linux 三剑客之sed


代指某一部分使用() s/(xxx)(xxx)/\1\2/
示例: 在数字与内容之间插入内容
linux 三剑客之sed


语法中的 / 可以替换为其他任意字符, 如果不是替换模式, 需要 \ 声明
linux 三剑客之sed


r 读取文件, w 写入文件

在某处读取文件 nr/
示例: 在第二行时读取文件
linux 三剑客之sed
匹配到的内容写入文件 “/xxx/w file”
linux 三剑客之sed


a(后缀) i(前缀) c(替换)

a, 在下一行追加内容
i, 在前一行追加内容
c, 替换内容
示例:
linux 三剑客之sed
linux 三剑客之sed
linux 三剑客之sed


d 删除

示例: 删除 cccc 行
linux 三剑客之sed
删除 第n行 nd
linux 三剑客之sed


h, H, g, G

h 把模式空间的内容覆盖到暂存空间
H 把模式空间的内容追加到暂存空间
g 取出暂存空间内容, 覆盖到原内容处
G 取出暂存空间内容, 追加到原内容处

示例1: 将第一行的内容添加覆盖到暂存空间, 覆盖到第二行, 在第三行后追加
linux 三剑客之sed
示例2: 把第一行内容放在末尾
linux 三剑客之sed
示例3: 将第一行内容放在暂存空间, 替换第二行, 追加第三行内容到暂存空间, 在第四行后追加
linux 三剑客之sed


小技巧:

示例: 当需要变量引用时, 最后一行若写在双引号里会被解释为一个变量, 此时可以分别写在单引号和双引号中, 转义 也可以
linux 三剑客之sed
linux 三剑客之sed


一般在写脚本时会修改源文件, 加上参数 -i 即可

相关文章: