Linux文本處理三劍客之 sed

sed是操作、過濾和轉換文本內容的強大工具。常用功能包括對文件實現快速增刪改查(增加、刪除、修改、查詢),其中查詢的功能中最常用的兩大功能是過濾(過濾指定字符串)、取行(取出指定行)。

以下是一些在使用過程中的案例總結:

  1. 過濾出包含字符<none>的行
sed -n '/<none>/p'
  1. 替換 <none> 前面的內容 為空
sed -n '{s/^[[:space:]]*//;p;}'
  1. 替換空格及后面的內容為空
sed -n '{s/[[:space:]].*$//;p;}'
  1. 換行符替換為空格
sed -n 's/\n/ /;p;' | sed ":label;N;s/\n/ /;b label"

跟之前 grep 命令格式類似,sed命令格式如下:

sed [選項]  [sed內置命令字符]  [輸入文件]

選項命令主要有兩個:

-n
取消默認的 sed 的輸出,常與 sed 內置命令p 連用。
-i
直接修改文件內容,而不是只輸出到終端。

內置命令主要實現對文件的操作,例如增刪改,主要有 4 個:

a
全稱 append,表示追加文本,在指定行后追加一行或多行內容
d
全稱 delete,表示刪除匹配行的文本
i
全稱 insert,表示插入文本,在指定行前插入一行或多行內容
p
全稱 print,表示打印匹配行的內容。
s/regexp/replacement/
匹配 regexp 部分的文本,并用replacement替換之,通常結尾跟 g 連用,表示全局替換 s/regexp/replacement/g

?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容