sed是操作、過濾和轉換文本內容的強大工具。常用功能包括對文件實現快速增刪改查(增加、刪除、修改、查詢),其中查詢的功能中最常用的兩大功能是過濾(過濾指定字符串)、取行(取出指定行)。
以下是一些在使用過程中的案例總結:
- 過濾出包含字符<none>的行
sed -n '/<none>/p'
- 替換 <none> 前面的內容 為空
sed -n '{s/^[[:space:]]*//;p;}'
- 替換空格及后面的內容為空
sed -n '{s/[[:space:]].*$//;p;}'
- 換行符替換為空格
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