目錄
一:linux中sed命令介紹
Linux sed 命令是利用腳本來處理文本文件。
sed 可依照腳本的指令來處理、編輯文本文件。
Sed 主要用來自動編輯一個或多個文件、簡化對文件的反復操作、編寫轉換程序等。
1.sed作用
sed是linux中,流媒體編輯器
sed : 修改文件
2.sed命令格式
sed [參數] '處理結果' [操作對象]
3.參數
-e : 允許多項編輯
-n : 取消默認輸出
-i : 就地編輯
-r : 支持擴展正則
4.sed的編輯模式
d : 刪除
p : 打印
a : 在當前行后添加一行或多行
5.sed參數解析用法
1.指定刪除文件第三行和第六行內容之多項編輯
案例:
sed -e '3d' -e '6d' 1.txt
2.指定打印取消默認輸出(只顯示打印出的第五行內容)
案例
sed -n '5p' 1.txt
3.就地編輯(直接編輯到文件內)
案例:
sed -i '5p' 1.txt
4.擴展正則(跟grep-E功能是一樣的《普通正則是默認支持的,特殊正則需要使用擴展》)
案例:
定位刪除兩個斜線正則當中的內容'/123/d'就是匹配文件內123!
sed -r '/123/d' 1.txt
二:sed 參數 -f 案例實戰解析
1.前介
4.擴展正則(跟grep-E功能是一樣的《普通正則是默認支持的,特殊正則需要使用擴展》)
案例:
定位刪除兩個斜線正則當中的內容'/123/d'就是匹配文件內123!
sed -r '/123/d' 1.txt
2.引入簡介
1.如果我們的擴展正則寫的非常復雜的話,這個地方會非常任意寫錯。
所有說我們用到了以下方法:
就像面向對象中為了解決對象與對象之間的代碼冗余的問題,我們用到了類一樣。
3.方法流程(根據提供的規則命令匹配)
4.在 2.txt文件中編寫
[root@localhost ~]# vim 2.txt
5.根據提供的規則命令匹配並刪除數據
[root@localhost ~]# sed -f 2.txt 1.txt
1. '/123/d' :匹配規則
2. 匹配規則可以放在 2.txt 文件內
3. -f 參數來指定規則文件(2.txt)
4. 來操作后面1.txt的操作對象
三:sed的編輯模式
d : 刪除
p : 打印
a : 在當前行后添加一行或多行
在sed中最中最重要的就是 定位 與編輯模式!
1.定位介紹解析
1.數字定位法
解釋: 就是指定多少行,指定行號。
案例1('3d'代表刪除多少行)
sed '3d' 1.txt
案例2('2,3d'代表刪除2行和3行)
sed '2,3d' 1.txt
2.正則定位法
解釋: 就是把數字的定位改成正則的定位(指定正則定位法)
案例1(刪除以g開頭的行)
sed '/^g/d' 4.txt
案例2(刪除以包含g的行)
sed '/g/d' 4.txt
3.數字和正則定位法
解釋: 就是指定一個數字后面是正則
案例1(從第三行開始刪除到g結尾的行結束)
sed '3,/^g/d' 4.txt
4.正則和正則定位法
解釋: 就是指定一個正則后面一個正則
案例1(刪除以g開頭的行到以j結尾的行結束)
sed '/^g/,/^j/d' 4.txt
2.sed的編輯模式
d : 刪除
p : 打印
a : 在當前行后添加一行或多行
案例1:(指定在文件第二行后添加xxx內容)
sed '2axxx' 1.txt
c : 用新文件修改(替換)當前行
案例2:(指定替換(修改)第二行內容為xxx)
sed '2cxxx' 1.txt
i : 在當前行之前,插入文本(單獨使用時)
案例3:(指定在第二行之前插入/添加xxx內容)
sed '2ixxx' 1.txt
r : 在文件中讀內容
案例4:(將2.txt文件的內容,讀到/添加到1.txt中的第二行后)
sed '2r 2.txt' 1.txt
w : 將指定行寫入文件
案例5:(將2.txt文件內容第二行寫入w.txt文件內)
注:2.txt寫入到w.txt內時會將w.txt之前內容清空寫入
sed '2w w.txt' 2.txt
y : 將字符轉換成另一個字符
案例6:(將4第二行的小寫f替換成大寫F《只替換字符》)
sed '2y/f/F/' 4.txt
案例7:(將4第二行的小寫f和a替換成大寫F和A《只替換字符》)
sed '2y/fa/FA/' 4.txt
注: 單個稱為字符!
單個以上為字符串!
s : 將字符串轉換成另一個字符串(每一行只替換一次)
案例8:(將文件內11替換成22)
sed 's/11/22/' 4.txt
g : 全部執行
案例9:(全部替換g模式 加 s模式)
sed 's/11/22/g' 1.xtt
i : 忽略大小寫(跟 s 模式以前使用時)
案例10:(在文件內替換時沒有大寫F,只有小寫時配合使用i《忽略大小寫》)
sed 's/F/abc/gi' 4.txt