shell-sed脚本

脚本目的:正则表达式

综合案例:过滤用户名称以及对应的密码
-找到使用bash做登陆shell的本地用户
-列出这些用户的shadow密码记录
-按每行"用户名--->,密码登陆" 保存结果shell

[root@IBM RegularExpress]# cat input2.sh
#!/bin/bash
user=`sed -n '\#/bin/bash#p' /etc/passwd |cut -d : -f 1`
for i in $user
do
passwd=`sed -n "/$i/ p" /etc/shadow |cut -d : -f 2`
    for j in $passwd
    do
        echo "$i---->$j" >>result.txt
    donebash

doneapp


——————————————————————————————————————.net

sed的难点在于和正则表达式相结合get

SED的操做指令:input

1.增长
#sed  '2a XXX'  文件  #追加append 在第二行的后面插入xxx
#sed  '2i YYY'  文件  #插入insert 在第二行的前面插入xxx
2.删除
#sed  '2d'  文件      #删除第2行
#sed  '/IPADDR/d'  文件
3.修改
#sed  '2c XXX' 文件   #change行,替换一整行
#sed  's/旧/新/' 文件  #替换,替换1个  每行出现的第一个关键字
#sed  's/旧/新/g' 文件  #替换全部
#sed 's/old//' 文件 把老的替换成空就是删除
替换符能够是任何符号和数字 如: #,不必定是/class

4,查找登录

.行号
#sed -n '1p' 文件
#sed -n '3p' 文件
#sed -n '1~2p' 文件
#sed -n '1,2p' 文件
#sed -n '1,+3p' 文件 1和随后的3行打印
.正则
#sed -n '/IPADDR/p' 文件
#sed -n '\cIPADDRc' 文件
#sed '/\/bin\/bash/p'  文件
#sed '\c/bin/bashcp'  文件
#sed '\#/bin/bash#p'  文件
#sed '$p' 文件扩展

#行号处用正则替代

5,正则的保留

1.基本正则 \(abc\)t\1u\1i\1o\1 \(abc\)t\(cba\)u\1i\2o\2 2.扩展正则 (abc)t\1u\1i\1o\1 (abc)t(cba)u\1i\2o\2

相关文章
相关标签/搜索