Linux中sed命令的用法舉例


 

 

 

前言

sed - stream editor,流編輯器,用於對輸入流(文件或來自管道的輸入)執行基本文本轉換,是Linux系統中最重要和最常用的命令之一。

基本語法

其基本語法如下:

$ sed [OPTION]... {script-only-if-no-other-script} [input-file]...

常用選項

選項 說明
-n, --quiet, --silent 靜默模式, 只輸出被 sed 處理過的行;
-e script, --expression=script 指定命令用於執行, 可以使用多個 -e 執行多個命令
-f script-file, --file=script-file 指定含有命令的腳本用於執行
-r, --regexp-extended 讓腳本支持拓展的正則表達式語法, 如 +, ?, |, () 等
-i --in-place 直接在指定的文件里修改編輯替換, 不在標准輸出中輸出任何內容

用法舉例

打印

$ #打印最后一行
$ sed -n '$p' geekfile.txt
$ #打印指定范圍行,如第1行到第3行
$ sed -n '1,3p' geekfile.txt
$ #打印從第2行開始到以test結尾的行之間的每一行
$ sed -n '2,/test$/p' geekfile.txt

替換

$ #替換行中第1次出現的pattern
$ sed 's/unix/linux/' geekfile.txt
$ #替換行中第n次出現的pattern
$ sed 's/unix/linux/2' geekfile.txt
$ #替換行中所有出現的pattern 
$ sed 's/unix/linux/g' geekfile.txt
$ #替換行中第n次及之后出現的所有pattern,如第三次及之后
$ sed 's/unix/linux/3g' geekfile.txt
$ # 替換指定行,如第三行
$ sed '3 s/unix/linux/' geekfile.txt
$ #替換指定范圍的行,如1到3行
$ sed '1,3 s/unix/linux/' geekfile.txt
$ #替換指定范圍的行,如第2行到最后一行,$表示最后一行
$ sed '2,$ s/unix/linux/' geekfile.txt
$ #只打印替換過的行
$ sed 's/unix/linux/p' geekfile.txt

刪除

$ #刪除第5行
$ sed '5d' filename.txt
$ #刪除最后一行
$ sed '$d' filename.txt
$ #刪除指定范圍的行, 如第3行到第6行
$ sed '3,6d' filename.txt
$ #刪除指定范圍的行, 如第3行到最后一行
$ sed '3,$d' filename.txt
$ #刪除pattern所匹配的行,如刪除含有abc的行
$ sed '/abc/d' filename.txt

參考資料

sed-command-in-linux-unix-with-examples


免責聲明!

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



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