Linux三劍客--Sed詳細示例

前言:

sed 作爲Linux三劍客之一,依賴於正則表達式,是強大的文本處理工具,可以根據條件對文本進行刪除、修改、添加等操作。

一、Sed的基本用法

1.sed的選項
選項 解釋
-e 指定要執行的命令
-n 只輸入處理後的行
-i 只編輯文件而不輸入結果
2.常用操作
指令 解釋
p 輸出指定的行
d 刪除指定的行
s 替換
r 讀取文件
i 輸入
p;n 奇數行
n;p 偶數行
q 退出sed
w 另存爲新文件
h 保存當前模式到一個緩衝區
G 取出保存的模式
y 對應替換
c 取代

二、sed用法詳細示例

(一)顯示

1.顯示文件所有內容,相當於cat

sed -n 'p' file

2.顯示第n行到第m行

sed -n '1,5p' file

3.顯示奇數行

sed -n 'p;n' file 

4.顯示偶數行

sed -n 'n;p' file

5.顯示第n行到第m行中的奇數行

sed -n 'N,M{p;n}' file

6.顯示第n行到第m行中的偶數行

sed -n 'N,M{n;p}' file

7.顯示第n行

sed -n 'Np' file

8.顯示尾行

sed -n '$p' file

9.從第n行開始,連續顯示x行

sed -n 'N,+Xp' file

10.顯示文件中包含某個字符的所有行

sed -n '/xxx/p' file

11.顯示文件的行號(只顯示行號,不顯示內容)

sed -n '=' passwd

12.顯示帶有某個字符所在行的行號(只顯示行號,不顯示內容)

sed -n '/xxx/='
(二)插入

1.在含有某個字符的行前面添加新行

sed '/XXX/i XXX' file

如:
在這裏插入圖片描述
2.在含有某個字符的行後面添加新行

sed '/XXX/a XXX' file

如:
在這裏插入圖片描述
3.在第n行前/後添加新行

sed 'Na/iXXX' file

如:在第二行後添加新行123
在這裏插入圖片描述
在第二行前添加新行123
在這裏插入圖片描述

(三)刪除

1.刪除第n行

sed 'Nd' file

2.刪除最後一行

sed '$d' file

3.刪除以某個字符結尾的行

sed '/XXX$/d' file

4.刪除以某個字符開頭的行

sed '^XXX/d' file

5.刪除第n-m行

sed 'N,Md' file

6.刪除空行

sed '/^$/d' file

7.刪除含有某個字符的行

sed '/XXX/d' file

8.刪除不含某個字符的行

sed '/XXX/!d' file
(四)替換

1.刪除文件中的某個字符(全文)

sed 's/XXX//g' file(實際就是將這個字符替換爲空)

2.將一個字符替換爲另一個字符

sed 's/XXX/YYY/g' file

3.將所有含有某個字符的行替換

sed '/XXX/c YYY' file

4.將包含某個字符的行,行中的某個字符替換爲新的字符

sed '/XXX/s/YYY/ZZZ/g' file

如:將包含root的行,行中的0替換爲123
替換前
在這裏插入圖片描述
替換後
在這裏插入圖片描述
5.將每行的第n個指定字符替換爲另一個字符

sed 's/XXX/YYY/Np' file

如:將每行的第二個root替換爲123
替換前
在這裏插入圖片描述
替換後
在這裏插入圖片描述
6.將第n-m行中的某個字符替換爲新字符

sed 'N,Ms/XXX/YYY/g' file

如:將2-7行中的bin替換爲123
在這裏插入圖片描述
7.在第n行行首插入字符

sed 'Ns/^/XXX/' file

8.在每行行首插入字符

sed 's/^/XXX/' file

9.在每行行尾插入字符

sed 's/$/XXX/' file

10.將第n行替換爲新的一行

sed 'NcXXX' file

如:將第2行替換爲+++++
在這裏插入圖片描述
11.對應替換

sed 'y/XXX/YYY/' file

如:替換前

替換後:將第二行中的bin對應替換爲123(意思是b=1,i=2,n=3)
在這裏插入圖片描述

(五)移動

1.將包含某個字符的行另存爲一個新文件

sed '/XXX/w new_file' file

2.將包含某個字符的行移至文件末尾

sed '/XXX/{H;d};$G' file

3.將第n-m行移至文件末尾

sed 'N,M{H;d};$G' file
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章