簡述sed常用操作命令,并舉例

sed命令:
文本處理三劍客:
  • grep,egrep,fgrep:文本過濾器
  • sed:stream EDitor,劉編輯器,行
  • awk:文本格式化工具,報告生成器
  • sed [option]…’script’ [input-file]…
  • script:
地址定界編輯命令
  • 常用選項:
  • -n:不輸出模式空間中的內容至屏幕;
  • -e script,–expression=script 多點編輯
  • -f /path/to/sed_script_file 命令多時可以用 從文件中取出命令
  • 每行一個編輯命令;
  • -r:–regexp-extended:支持使用擴展的正則表達式;
  • -i [suffix],–in-place[=suffix]:直接編輯原文件;
  • sed -e ‘s@^#[[:space:]]*@@’ -e ‘/^UUID/d’ /etc/fstab
地址定界:
  • 1.空地址:對全文進行處理;
  • 2.單地址:
  • #:指定行
  • /pattern/: 被此模式匹配到的每一行;
  • 3.地址范圍
  • #,#
  • #,+#
  • #,/pat1/
  • /pat1/,/pat2/
  • $ 標識最后一行
  • 4.步進:~
  • 1~2:所有奇數行
  • 2~2:所有偶數行
編輯命令:
  • d:刪除
  • p:顯示模式空間中的內容;
  • a:\text:在匹配到的行 下一行追加內容,支持使用\n 實現多行插入
  • sed ‘3a \new line\nanother new line’ /etc/fstab
  • i:\text:在匹配到的行 上一行追加內容,支持使用\n 實現多行插入
  • sed ‘/^UUIDa \new line’ /etc/passed
  • c:匹配到的行替換為給出的內容
  • w /path/to/somefile 保存范圍內的內容到指定的路徑
  • r:/path/from/somefile 讀取指定位置的文件至當前文件被模式匹配到的行后面,文件合并;
  • =:為模式匹配到的行打印行號;
  • !:條件取反;
  • 地址的后面,命令的前面
  • s///:查找替換,其分隔符可自行指定,常用的有s@@@,s###
  • 替換標記
  • g:全局替換
  • w:/path/to/somefile 將替換成功的結果保存至指定文件中
  • p:顯示替換成功的行
高級編輯命令:
  • h:把模式空間中的內容覆蓋至保持空間中;
  • H:把模式空間中的內容追加至保持空間中;
  • g:把保持空間中的內容覆蓋至模式空間中;
  • G:把保持空間中的內容追加至模式空間中
  • x:把模式空間中的內容與保持空間中的內容互換;
  • N:追加讀取匹配到的行的下一行至模式空間中;
  • n:覆蓋讀取匹配到的行的下一行至模式空間中;
  • d:刪除模式空間中的行
  • D:刪除多行模式空間中的所有行
示例:
sed -n ‘n;p’ file; 顯示偶數行
sed ‘1!G;h;$!d’ ? ?逆序顯示文件的內容
sed ‘$!d’ file ? ? 取出最后一行
sed ‘$!N;$!D’ file 取出文件后兩行
sed ‘/^$/d;G’ file 刪除原有的所有空白行,而后為所有的非空白行添加一個空白行
sed ‘n;d’ file ?顯示奇數行
sed ‘G’ file 在原有的每行后添加一個空白行

本文來自投稿,不代表Linux運維部落立場,如若轉載,請注明出處:http://www.www58058.com/100527

(1)
墨武墨武
上一篇 2018-06-07 15:00
下一篇 2018-06-07 16:04

相關推薦

  • Linux啟動和內核管理

    系統啟動和內核管理 Linux組成 Linux:kerne+rootfs(應用程序) kernel:進程管理、內存管理、網絡管理、驅動程序、文件系統、安全功能 roots:程序和glibc 函數:相當于命令的集合 庫:函數集合,function,調用接口(頭文件負責描述) 過程調用:procedure,無返回值 函數調用:function 程序:二進制執行文…

    Linux筆記 2018-05-13
  • VIM編輯器用法大全

    文本編輯工具 語法:vim 參數 文件 文本編輯種類: 行編輯器:sed 全屏編輯器:nano,vi,vim – Vi Improved vim編輯器三大模式 編輯模式, 輸入模式: 末行模式: 內置的命令行接口; 模式轉換: 編輯模式 — > 輸入模式 : i : 在光標所在處輸入 a : 在光標所在處的后方輸入 o : 在光…

    2018-04-08
  • Linux下history的用法

    Linux下history的用法 如果你經常使用Linux命令,那么使用history命令無疑會提升你的工作效率。history命令主要用于顯示歷史指令記錄內容, 通過快捷鍵快速下達歷史紀錄中的指令, -c: 清空命令歷史 清空內存中的歷史記錄 -d offset: 刪除歷史中指定的第offset個命令 例如 history -d 153 刪除第153條記錄…

    2018-04-01
  • N31第一周作業

    本周(6.18–6.24)第1周 1、描述計算機的組成及其功能。 計算機組成:硬件系統和軟件系統 硬件系統:CPU:運算器和寄存器(運算器負責算術、邏輯等運算、控制器是系統的控制中心) 存儲器:主要為內存,功能是存儲程序和各種數據信息。 Input:下指令、提供數據到計算機,常用的輸入設備有鼠標、鍵盤、掃描儀等 Output:輸出加工的結果,常用…

    Linux筆記 2018-06-25
  • 第六周

    簡述OSI七層模型和TCP/IP五層模型應用層:為計算機用戶提供應用程序接口和各種網絡服務,通??梢姷木W絡服務協議有:http,https,ftp,smtp,pop。會話層:建立、管理和終止表示層之間的通信會話。網絡層:進行邏輯地址尋址,實現不同網絡之間的路徑選擇物理層: 建立維護和斷開物理連接應用層:對應OSI七層模型中的應用層、表示層、會話層網絡層:物理…

    Linux筆記 2018-07-15
  • history和歷史命令操作

    這玩意內容太多了,單獨放起來好了,好爛的編輯器,我決定不在這里寫了ー( ̄~ ̄)ξ

    Linux筆記 2018-03-31

評論列表(1條)

  • 馬哥教育
    馬哥教育 2018-06-15 08:51

    建議多練習命令的各種用法。sed各種用法 在企業里面用的比較多

欧美性久久久久