Linux sed编辑器
生活随笔
收集整理的這篇文章主要介紹了
Linux sed编辑器
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
sed編輯器
- 一、sed編輯器
- 1.命令格式
- 2.常用選項
- 3.常用操作
- 二、sed編輯器使用演示
- 1.打印內容
- 2.使用地址
- 3.刪除行
- 4.替換
- 5.插入
一、sed編輯器
- sed是一種流編輯器,流編輯器會在編輯器處理數據之前基于預先提供的一組規則來編輯數據流。
- sed編輯器可以根據命令來處理數據流中的數據,這些命令要么從命令行中輸入,要么存儲在一個命令文本文件中。
sed的工作流程主要包括讀取、執行和顯示三個過程:
- 讀取: sed從輸入流 (文件、管道、標準輸入) 中讀取一行內容并存儲到臨時的緩沖區中(又稱模式空間,pattern space)
- 執行:默認情況下,所有的sed命令都在模式空間中順序地執行,除非指定了行的地址,否則sed命令將會在所有的行上依次執行。
- 顯示:發送修改后的內容到輸出流。在發送數據后,模式空間將會被清空。在所有的文件內容都被處理完成之前,上述過程將重復執行,直至所有內容被處理完。
在所有的文件內容都被處理完成之前,上述過程將重復執行,直
至所有內容被處理完。
注意:默認情況下所有的sed命令都是在模式空間內執行的,因此輸入的文件并不會發生任何變化,除非是用重定向存儲輸出。
1.命令格式
命令格式: sed -e '格式' 文件1 文件2 ... sed -n -e ‘操作’ 文件1 文件2 ... sed -f 腳本文件 文件1 文件2 ... sed -i -e '操作' 文件1 文件2 ...方法二 sed -e ' n { 操作1 操作2 ... } ' 文件1 文件22.常用選項
-e或--expression=: 表示用指定命令來處理輸入的文本文件,只有一個操作命令時可省略,一 般在執行多個操作命令使用f或--file=: 表示用指定的腳本文件來處理輸入的文本文件。h或--help: 顯示幫助。-n、--quiet或silent:禁止sed編輯器輸出,但可以與p命令一起使用完成輸出。-i: 直接修改目標文本文件。3.常用操作
s:替換,替換指定字符。 d:刪除,刪除選定的行。 a:增加,在當前行下面增加一行指定內容。 i:插入,在選定行上面插入一行指定內容。 c:替換,將選定行替換為指定內容。 y:字符轉換,轉換前后的字符長度必須相同。 p:打印,如果同時指定行,表示打印指定行;如果不指定行,則表示打印所有內容;如果有非打印字符,則以 ASCII 碼輸出。其通常與“-n”選項一起使用。 =:打印行號。 l(小寫L):打印數據流中的文本和不可打印的ASCII字符(比如結束符$、制表符\t)二、sed編輯器使用演示
1.打印內容
sed -n 'p' 55.txt 打印文件內容
2.使用地址
sed編輯器有2種尋址方式:
- 1、以數字形式表示行區間
- 2、用文本模式來過濾出行
3.刪除行
全刪 sed 'd' 55.txt 刪除第三行 sed '3d' 55.txt 刪除2到4行 sed '2,4d' 55.txt 刪除最后一行 sed '$d' 55.txt 刪除空行 sed '/^$/d' 55.txt sed '/nologin$/d' /etc/passwd #刪除包含nologin字符的行 sed '/nologin$/!d' /etc/passwd #不刪除包含nologin的行 從第一個位置打開行刪除功能,到第二個位置關閉行刪除功能 sed '/2/,/3/d' 66.txt4.替換
4種替換標記: 數字:表明新字符串將替換第幾處匹配的地方 g:表明新字符串將會替換所有匹配的地方 p:打印與替換命令匹配的行,與-n一起使用 w 文件:將替換的結果寫到文件中 將每行的第一個root替換成admin sed -n 's/root/admin/p' /etc/passwd 將每行的第二個root替換成admin sed -n 's/root/admin/2p' /etc/passwd 將每行的所有root替換成admin sed -n 's/root/admin/gp' /etc/passwd 將每行的所有root刪除 sed 's/root//g' /etc/passwd 1-20行行首添加#號 sed '1,20 s/^/#/' /etc/passwd 在以root開頭的行的結尾添加#號 sed '/^root/ s/$/#/' /etc/passwd 將/etc/passwd中的1-20行輸出保存到out.txt文件中 sed -n '1,20w out.txt' /etc/passwd 將/etc/passwd 中的1-20行的開頭添加#后保存到out2.txt文件中 sed -n '1,20 s/^/#/w out2.txt' /etc/passwd
5.插入
sed '/45/c ABC' 1.txt #將含有45的行,替換為ABC 將45換為AB,注意使用“y”時需要轉換前后的字符長度必須相同 sed '/45/ y/45/AB/' 1.txt #在1-3行,每行的下面都插入ABC sed '1,3a ABC' 1.txt 在第一行的上面插入ABC sed '1i ABC' sed.txt #在第五行后導入該文件內容 sed '5r /root/55.txt' 1.txt 將包含root的行剪切到末尾,H表示復制到剪切板,G表示粘貼到指定行后 sed '/root/{H;d};$G' /etc/passwd
總結
以上是生活随笔為你收集整理的Linux sed编辑器的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 内存焕新!阿斯加特雷赤内存让你的电脑速度
- 下一篇: Apu内存频率再创新高,速度惊人