Linux:三剑客之一 sed 的练习一

sed 流编辑器(非交互式编辑器) stream editor

(如果在使用sed的过程中发现’‘内的符号或者其他有冲突,可以尝试把’'换成"")

  • 工作模式:逐行处理

  • 语法:

    sed [选项] ‘行的定位 动作’ 文件…

  • 选项:

    -n:静默输出,关闭模式空间的输出,不会输出未匹配到的行 一般与p命令结合使用
    -e:允许进行多项编辑,也就是说对同一行做多次处理、. 可以做多点编辑
    -e ‘动作1’ -e ‘动作2’ == ‘动作1;动作2’
    -f: 后接sed脚本,指定执行的sed脚本(将模式动作写到文件中)
    -r:允许使用扩展正则(r 和 i连用时,i要放到r后面)
    -i:直接作用于原文件 没有输出 在使用-i之前一定先不加-i看看效果(如果确定写入文件之后,不要加-n,否则会把修改了的内容覆盖原来所有内容)
    -i.bak:修改原文件之前进行备份

换成大写字母:sed 's/[a-z]/\u&/g' /tmp/pass
查看2,4,8行: sed -n '2p,4p,8p' /tmp/pass
查看2到5行:sed -n '2,5p' /tmp/pass
查看奇数行: sed -n '1~2p' /tmp/pass
查看第三行到最后一行:sed -n '3,$p' /tmp/pass
查看除了第三行到最后一行的所有行:sed -n '3,$!p' /tmp/pass
查看除了第二行以外的所有行:sed -n '2!p' /tmp/pass
查看文件中含有root的行:sed -n '/root/p' /tmp/pass
从root开始输出行,直到sh结束输出:sed -nr '/root/,/sh$/p' /tmp/pass
对ip a命令的内容进行处理,筛选出IP:ip a|sed -n '/global/p'|sed 's/^.*inet//g'|sed 's/\/20.*$//g'/etc/passwd的第二个root替换:sed 's/root/ROOT/2' /etc/passwd
将/etc/passwd的每行第二个root开始替换:
sed 's/root/ROOT/g2' /etc/passwd
将/etc/redhat-release的文件内容读入到/tmp/pass的第一行后面:sed '1r /etc/redhat-release' /tmp/pass
将/tmp/pass符合条件的行写入到/tmp/a.txt: sed '/root/ w /tmp/a.txt' /tmp/pass
在/tmp/pass的第二行后面追加hello world:  sed '2 a hello world' /tmp/pass
在/tmp/pass的第二行前面插入helloworld: sed '2 i hello world' /tmp/pass
一一对应替换:sed 'y/abc/ABC/' /tmp/pass
将/tmp/pass的第二行的内容改为hello world: sed '2 c hello world' /tmp/pass
打印/tmp/pass第二行的下一行: sed -n '2{n;p}' /tmp/pass
打印/tmp/pass前8行后不继续打印: sed  '8q' /tmp/pass

 - sed的高级应用:

将第一第二行换位:sed '1h;1d;2G' /etc/passwd
将前三行进行倒叙:sed '1h;1d;2G;2h;2d;3G' zheng
将内容倒叙:sed '1{h;d};$!{G;h;d};G' zheng
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值