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

相關文章
相關標籤/搜索