Shell腳本之sed的使用


1.sed命令;主要作用是查找;新增 刪除 和修改替換。

user.txt 

daokr#cat user.txt
ID    Name    Sex    Age
1    zhang    M    19
2    wang    G    20
3    cheng    M    10
4    huahua    M    100

查找命令:-n 和 p(print)

在user.txt文件中;匹配帶h的行 並且只顯示1,3行

cat user.txt | grep h |sed -n '1,3p'

daokr#cat user.txt | grep h |sed -n '1,3p'
1    zhang    M    19
3    cheng    M    10
4    huahua    M    100

刪除命令:d(delete)

刪除最后一行記錄

   cat user.txt | grep h | sed '$d'

在user.txt中顯示帶h的行;並且從結果中刪掉2,3行的記錄;只看第一行記錄

cat user.txt | grep h |sed '2,3d'
daokr#cat user.txt | grep h
1    zhang    M    19
3    cheng    M    10
4    huahua    M    100
daokr#cat user.txt | grep h |sed '2,3d'
1    zhang    M    19

新增數據:a (append)

在user.txt中查詢出帶h的行;並在第二行后面添加新的一行數據

cat user.txt | grep h |sed '2a5\thuang\tG\t40'

前面插入:i (insert)

在第二行插入2行數據的簽名插入新增的數據:

cat user.txt | grep h |sed '2i hello\nword'

 

數據行替換:c

把第二行數據;用命令c替換成 10  wanghua  N  90

cat user.txt | grep h |sed '2c 10\twanghua\tN\t90'

字符串的替換:s 

格式為“行范圍s/舊字串/新字串/g”

daokr#cat user.txt | grep h 1    zhang    M    19
3    cheng    M    10
4    huahua    M    100
daokr#cat user.txt | grep h |sed '2s/ch/wh/g'
1    zhang    M    19
3    wheng    M    10
4    huahua    M    100

替換並寫入文件:-i

把第3行的數據里的wang 替換成heee 並寫入到user.txt

 

sed -i '3s/wang/heee/g' user.txt

 

daokr#sed -i '3s/wang/heee/g' user.txt
daokr#cat user.txt 
ID    Name    Sex    Age
1    Fhang    M    19
2    heee    G    20
3    cheng    M    10
4    huahua    M    100

多行替換:-e

sed -e 's/zhang//g ; s/wang//g' user.txt    # -e允許多條命令順序執行,用分號隔開,s前面不加數字表示所有行

 

sed -e 's/he/wl/g;s/hua/lua/g' user.txt

daokr#sed -e 's/he/wl/g;s/hua/lua/g' user.txt
ID    Name    Sex    Age
1    Fhang    M    19
2    wlee    G    20
3    cwlng    M    10
4    lualua    M    100

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM