Linux之sed命令常見用法


 

 

1. sed(stream editor),流編輯器

  linux中,主要中sed命令實現對文件的增刪改替換查

 

名稱
       sed - 用於過濾和轉換文本的流編輯器

SYNOPSIS
       sed [選項]... {script-only-if-no-other-script} [文件]...

常用選項或命令
-i                  正式執行操作修改內容    
     
-n                  取消默認輸出

-e                  允許多項編輯

-r                  使用擴展正則表達式

=                   在文件內容行前增加一行行號

s                   查找並替換

g                   全局范圍

p                   打印輸出

'/ /p'              正則表達式匹配/ /里面的內容並輸出

'2s///g'            2指代第二行

's#()()#\1\2#g'     分配處理,\1指代第1個()內的內容

's#()()#mv & doubi#g'     分配處理,\1指代第1個()內的內容,&指代##里面查找到的所有內容

腳本命令
i            在匹配的文件內容行前增加,常用格式:’//i zjnr’,’2i zjnr’

a            在匹配的文件內容行后增加,常用格式:’//a zjnr’、’2a zjnr’

d            刪除匹配的文件內容所在的行,常用格式:’//d’、’2d’

p            打印輸出匹配到的文本內容,常用格式:sed -n ’//p’、sed -n ‘2p’ 

s            替換匹配到的文件內容,常用格式:’s///g’、’s###g’;&代表匹配到的內容

c            按匹配到的內容替換文本內容,使用格式:’2c thnr’

 

 

 

 

2. sed的簡單增刪查改

# 把passwd文件復制到當前用戶家目錄 cp /etc/passwd ~/ cd # 增 # 22行前插入 sed -i '22 i佛祖派來的逗比' passwd # 22行后添加 sed -i '22 a佛祖派來的逗比' passwd # 匹配postfix行,在行前插入 sed -i '/postfix/ iemail' passwd # 刪 sed -i '22d' passwd
sed -i '/佛祖派來的逗比/d' passwd # 查,-n取消默認輸出,即只輸出匹配到的內容 sed -n '/root/p' passwd
sed -n '22p' passwd # 替換 # 替換匹配到的第一個root為Caiyun sed -i 's#root#Caiyun#' passwd # 替換所有root為Caiyun sed -i 's#root#Caiyun#g' passwd

 

3. 擴展實例

# 取ip地址 ifconfig eth0|sed -nr '2s/^.*ddr:(.*) B.*$/\1/gp' # 轉換列輸出 sed -r 's#([^:]+)(:.*:)(/.*$)#\3\2\1#g' passwd # 優化sshd服務 sed '13a Port 52004\nPermitRootLogin no\nPermitEmptyPasswords no\nUseDNS no\nGSSAPIAuthentication no' sshd_config # 打印文件內容不包含root用戶行 sed '/root:x/d' passwd #指定行修改文件內容 sed '28s/dudu/DUDU/g' passwd # 優化開機自啟動服務 chkconfig --list|grep "3:on"|egrep -v "crond|network|rsyslog|sshd|sysstat" |awk '{print"chkconfig",$1,"off"}'|bash # 批量更改文件名 ls rename/|sed -r 's/(^stu.*)_fin.*$/\1.png/g'
ls|sed 's/\(^stu.*\)_fin.*$/mv & \1.png/g'|bash rename "_finished" ""  stu*

 

 


免責聲明!

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



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