赞
踩
【sed 简单用法】
sed 流式编辑器(实现非交互式编辑) 逐行进行 选项 -n 屏蔽默认输出 -r 支持扩展正则 -i 写入文件 指令 p 输出 d 删除 s 替换 c 取代 a 新增 在下行出现 i 插入 在上行插入 [root@hp opt]#sed -n '3p;5p' filetest 查看第三行和第5行 daemon:x:2:2:daemon:/sbin:/sbin/nologin lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin [root@hp opt]#sed -n '3,5p' filetest 查看3到5行 daemon:x:2:2:daemon:/sbin:/sbin/nologin adm:x:3:4:adm:/var/adm:/sbin/nologin lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin [root@hp opt]#sed -n '3,+2p' filetest 查看第3行后加2行 daemon:x:2:2:daemon:/sbin:/sbin/nologin adm:x:3:4:adm:/var/adm:/sbin/nologin lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin [root@hp opt]#nl filetest | sed -n '1~2p' 打印奇数行 [root@hp opt]#nl filetest | sed -n '2~2p' 打印偶数行 [root@hp opt]#sed -n '= ' filetest 查看行数 [root@hp opt]#sed -n '$= ' filetest 最后一行的行号 42 [root@hp opt]#sed -n '$p ' filetest 文档的最后一行的内容 hp:x:1000:1000:hp:/home/hp:/bin/bash [root@hp opt]#sed -n '1!p' filetest 除第一行外的所有行 [root@hp opt]#sed -n '/^root/p' filetest //:两个斜线内进行匹配 root:x:0:0:root:/root:/bin/bash 搜索以root开头字符串 进行打印 [root@hp opt]#sed -rn '/^root|^bin/p' filetest 以root开头或者以bin开头 root:x:0:0:root:/root:/bin/bash bin:x:1:1:bin:/bin:/sbin/nologin [root@hp opt]#sed '/^$/d' filetest 删除空行 [root@hp opt]#sed -n 's/root/bin/g;p' user 全局替换将root替换成bin [root@hp opt]#sed '1s/root/bin/g' user 只换第一行的第一个 [root@hp opt]#sed '1,10s/root/bin/g' user 替换1到10行的第一个root bin:x:0:0:bin:/bin:/bin/bash bin:x:1:1:bin:/bin:/sbin/nologin [root@hp opt]#sed '1,10s/bin/root/2' user 替换前1-10行的第二个bin [root@hp opt]#sed '/nologin$/s/bin/root/g' user [root@hp opt]#sed 's@/bin/bash@/sbin/sh@' user 修改替换符/为@ [root@hp opt]#sed 's/.$//' user 将文件中最后一个字符替换掉 [root@hp opt]#sed 's/.//3' user 将文件中第三个字符替换掉 [root@hp opt]#sed 's/.//3;s/.$//' user 将上面 两个命令换成一行, 一个文件中将第三个字符和最后一个字符替换掉(将两个任务合成一个任务) 进行字符互换(第一个字符和最后一个字符进行互换) [root@hp opt]#echo xyz > test [root@hp opt]#sed -r 's/(x)(y)(z)/\3\2\1/' test zyx [root@hp opt]#cat test xyz abc [root@hp opt]#sed -r 's/(^.)(.*)(.$)/\3\2\1/' test zyx cba [root@hp opt]#sed -r 's/(^.)(.*)(.$)/\3\2\1/' test zyx dbca [root@hp opt]#sed -r 's/^(.)(.*)(.)$/\3\2\1/' test zyx dbca 两种写法都可以 将文件中的一个个写字母加上() [root@hp opt]#sed -r 's/([a-z])/(\1)/' test (x)yz (a)bcd 将文件中的所有小写字母加上() [root@hp opt]#sed -r 's/([a-z])/(\1)/g' test (x)(y)(z) (a)(b)(c)(d) a向下行追加 [root@hp opt]#sed 'a test' test 每一行都加 xyz test abcd test [root@hp opt]#sed '2a test' test 第二行的下面追加 xyz abcd test [root@hp opt]#sed '/yz/a test' test 在yz的下行追加 xyz test abcd c 整行替换 [root@hp opt]#sed '/xy/c test' test 将带有xy的行进行替换成test test abcd
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。