linux——sed 流编辑器

sed 对字符的处理

p 模式——显示
d 模式——删除
a 模式——添加
c 模式——替换
w 模式——写入
i 模式——插入
  • p 模式
    这里写图片描述
    sed -n '/^#/p' fstab 显示以 # 号开头的行
    这里写图片描述
    sed -n '/^#/!p' fstab 显示不以 # 号开头的行
    这里写图片描述
    sed -n '/0$/!p' fstab 显示不以 0 结尾的行
    这里写图片描述
    cat -n fstab | sed -n '2,6p'显示 2-6 行
    这里写图片描述
    cat -n fstab | sed -n -e '2p' -e '6p'cat -n fstab | sed -n -e '2p;6p'
    显示第2、第6行
    这里写图片描述
    cat -n fstab | sed -n -e '2!p'显示除了第2行的其他行
    这里写图片描述
    cat -n fstab | sed -n -e '2,6!p'不显示 2-6 行
    这里写图片描述
    cat -n fstab | sed -ne '2!p;6!p' | uniq -d显示除了第2、第6行的其他行
    这里写图片描述

  • d 模式
    cat -n fstab | sed -e '2d;6d'删除第2、第6行后再显示
    这里写图片描述
    cat -n fstab | sed -e '2,6d'删除第 2-6 行后再显示
    这里写图片描述
    sed -e '/^#/d' fstab删除以 # 号开头的行后再显示
    这里写图片描述
    sed -e '/^$/d' fstab删除空行后再显示
    这里写图片描述
    sed -e '/^$/d;/^#/d' fstab删除空行和以 # 号开头的行后再显示
    这里写图片描述
    sed -e '/UUID/!d' fstab< == >sed -e '/^UUID/!d' fstab
    除了含有 UUID 的行(以UUID开头的行)不删除,其余的删除后再显示
    这里写图片描述
    sed -e '/UUID/d' fstab删除含有 UUID 的行后再显示
    这里写图片描述

  • a 模式
    sed '/hello/aworld' westos添加 world 到文件 westos(默认添加到最后行)
    sed 's/hello/hello world/g' westos全局替换,将 hello 替换成 hello world
    sed '/hello/a\world' westos等价于sed '/hello/aworld' westos
    sed '/hello/aworld westos' westos添加 hello world 到文件 westos
    sed '/hello/aworld\nwestos' westos
    添加 world westos 到文件 westos ,world 后有换行符,所以 westos 换行显示
    sed '/hello/aworld\n westos' westos
    world 后有换行符且有一空格,所以 westos 换行并空格显示
    这里写图片描述

  • c 模式
    sed '/hello/chello world' westos将文件 westos 中的 hello 替换成 hello world
    sed '/hello/ci\nlike\nyou' westos将文件 westos 中的 hello 替换成 i like you 并换行显示
    这里写图片描述

  • w 模式
    这里写图片描述
    sed -n '/bash$/p' passwd > file等价与sed -n '/bash$/wfile1' passwd
    此处只为看效果,用 file 和 file1 演示
    这里写图片描述
    这里写图片描述
    sed '/hello/=' westos
    sed '/hello/=' -i westos
    参数 -i :直接修改读取的文件内容,而不是输出到终端。
    这里写图片描述
    演示将内容一行显示
    这里写图片描述
    这里写图片描述
    sed '6r westos' fstab
    在文件 fstab 的第6行后添加上文件 westos 的内容后显示
    这里写图片描述
    sed '$r westos' fstab
    在文件 fstab 的最后一行后添加上文件 westos 的内容后显示
    这里写图片描述
    sed '1r westos' fstab在文件 fstab 的第1行后添加上文件 westos 的内容后显示
    这里写图片描述
    sed -n '/^UUID/=' fstab
    sed '/^UUID/=' fstab
    这里写图片描述

    • sed 的其他用法
      此处只演示sed -f filename1 filename2,其余可自己测试
sed -f filename1 filename2
sed -n -e '/^UUID/p' -e '/^UUID/=' filename
sed -e 's/sbin/linux/;s/bash/westos/' filename
sed 's/^\//#/' filename
sed 's@^/@#@g' filename
sed 's/\//#/' filename
sed 's/\//#/g/' filename
sed 'G' filename
sed '$!G' filename
sed '=' filename | sed 'N;s/\n/ /'
sed -n '$p' filename

这里写图片描述
这里写图片描述
这里写图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值