sed 命令小結

wKiom1XkHTiSe4DPAACNkbOZ8S8487.jpg

sed:過濾和轉換的文本編輯器,主要是針對行的編輯,一次只能一行
        用法:sed 【option】 {script} filename
        參數:
                 -n:取消默認輸出
                 -e:用於多重編輯
                 -i:用於改變替換的內容
                 -f :直接將 sed 的動作寫在一個文件內, -f filename 則可以運行 filename 內的 sed 動作
                 -r :sed 的動作支持的是延伸型正規表示法的語法。(默認是基礎正規表示法語法)

                 s:是替換
                 g:是全部替換
                 p:打印輸出
                 d:是刪除指定,剩餘輸出
         例子:使用seq或者echo輸出一個1-30的文件
                 # seq 1 30 >sed.txt
                 # echo {1..30}|tr " " "\n">sed.txt

刪除:
                 # sed '1d' sed.txt   刪除第一行
                 # sed '$d' sed.txt   刪除最後一行
                 # sed '1,5d' sed.txt 刪除第一到第五行

顯示:
                 # sed -n '1p' sed.txt   顯示第一行
                 # sed -n '$p' sed.txt   顯示最後一行
                 # sed -n '1,5p' sed.txt 顯示第一到第五行

顯示查找行:
                 # sed -n '/^2/p' sed.txt  以2開頭的行
                 # sed -n '/2$/p' sed.txt  以2結尾的行
                 # sed -n '/2/p' sed.txt   包含2的行

替換:
                 # sed -i 's/2/1/g' sed.txt     將所有的2替換成1
                 # sed -i '10s/10/11/g' sed.txt 指定第10行替換

**使用sed取出網卡的IP地址
          # ifconfig eth0|sed -n 2p|sed 's/^.*dr://g'|sed 's/Bc.*$//g'  這裏是先取前部分,再取後部分
          # ifconfig eth0|sed -n 2p|sed -n 's#^.*dr:\(.*\)Bca.*$#\1#gp' 這裏的括號必須轉義

**使用find+sed替換所有的文件:
          # find . -type f exec sed -i 's/2/1/g' {} \;

          # find . -type f | xargs sed -i 's/2/1/g' ;


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章