您的位置:首页 > 运维架构 > Shell

shell-早间学习,每日一点

2013-10-16 07:31 176 查看
1、定位行:

sed -n '12,~3p' pass #从第12行开始,直到下一个3的倍数行(12-15行)

sed -n '12,+4p' pass #从第12行开始,连续4行(12-16行)

sed -n '12~3p' pass #从第12行开始,间隔3行输出一次(12,15,18,21...)

sed -n '10,$p' pass #从第10行至结尾

sed -n '4!p' pass #除去第4行

2、正则:'/正则式/'

sed -n '/root/p' /etc/passwd

sed -n '/^root/p' /etc/passwd

sed -n '/bash$/p' /etc/passwd

sed -n '/ro.t/p' /etc/passwd

sed -n '/ro*/p' /etc/passwd

sed -n '/[ABC]/p' /etc/passwd

sed -n '/[A-Z]/p' /etc/passwd

sed -n '/[^ABC]/p' /etc/passwd

sed -n '/^[^ABC]/p' /etc/passwd

sed -n '/\<root/p' /etc/passwd

sed -n '/root\>/p' /etc/passwd

3、sed编辑(对行的插入、删除、替换操作)

sed '/root/a admin' /etc/passwd #在root行后追加一个admin行

sed '/root/i admin' /etc/passwd #在root行前插入一个admin

sed '/root/c admin' /etc/passwd #将root行替换为admin

sed '/root/d' /etc/passwd #删除含有root的行

s替换

sed -n 's/root/admin/p' /etc/passwd

sed -n 's/root/admin/2p' /etc/passwd #在每行的第2个root作替换

sed -n 's/root/admin/gp' /etc/passwd

sed -n '1,10 s/root/admin/gp' /etc/passwd

sed -n 's/root/AAA&BBB/2p' /etc/passwd #将root替换成AAArootBBB,&作反向引用,代替前面的匹配项

sed -ne 's/root/AAA&BBB/' -ne 's/bash/AAA&BBB/p' /etc/passwd #-e将多个命令连接起来,将root或bash行作替换

sed -n 's/root/AAA&BBB/;s/bash/AAA&BBB/p' /etc/passwd #与上命令功能相同

sed -nr 's/(root)(.*)(bash)/\3\2\1/p' /etc/passwd #将root与bash位置替换,两标记替换

或sed -n 's/\(root\)\(.*\)\(bash\)/\3\2\1/p' /etc/passwd

bash:x:0:0:root:/root:/bin/root

y替换

echo "sorry"|sed 'y/ory/ABC/' #一一对应替换(sABBC)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: