Shell程式設計4 文字處理三劍客 sed

2021-08-21 01:29:31 字數 3342 閱讀 7689

可以通過定址來定位你所希望編輯的行,該位址用數字構成,用逗號分隔的兩個行數表示以這兩行為起止的行的範圍(包括行數表示的那兩行)。如 1,3 表示 1,2,3 行,美元符號($)表示最後一行。範圍可以通過資料,正規表示式或者二者結合的方式確定

呼叫 sed 命令有兩種形式:

sed [options] 『command』 file(s)

sed [options] -f scriptfile file(s)

p    顯示

d 刪除

a 新增

c 替換

w 寫入

i 插入

4-1.p:顯示模式
sed -n

'/\:/p' fstab 顯示fsatb中:行

sed -n

'/uuid$/p' fstab 顯示fsatb中uuid結尾行

sed -n

'/^uuid/p' fstab 顯示fsatb中uuid開始行

sed -n

'3,6p' fstab 顯示fsatb中3到6行

sed -n

'3,6!p' fstab 顯示fsatb中除了3

-6行的其他行行

不加-n重複顯示

4-2.d:刪除模式

sed '/^uuid/d' fstab      刪除fstab中以uuid開始的行

sed '/uuid$/d' fstab 刪除fstab中以uuid結尾的行

sed '1,6d' fstab 刪除fstab中1-6行

sed '/uuid/!d' fstab 刪除fstab中不是uuid的行

sed '4,6!d' fstab 刪除fstab中不是4-6行

4-3.a:新增模式

sed '/^uuid/a \hello' sed fstab 追加hello到fstab以uuid開頭的行後 

sed '/uuid$/a hello\n world' sed fatab 增加換行

4-4.c:更改模式

sed '/^uuid/c hello' fstab          對於fatab把符合uuid開頭的行替換hello

4-5.w:寫入模式

sed 『/^uuid/w /tmp/fstab.txt』 /etc/fstab 

(把/etc/fstab 中 uuid 開頭的行儲存到/tmp/fstab 中)

sed -n『/^uuid/w /tmp/fstab.txt』 /etc/fstab

sed '/^uuid/=' fstab 顯示fstab中以uuid開頭的行數和內容,會顯示其他不符合條件的行內容

sed -n

'/^uuid/=' fstab 顯示fstab中以uuid開頭的行數,只顯示符合條件的行號和內容

sed 『6r /etc/issue』 /etc/fstab (把/etc/issue 檔案內容放置

到/etc/fstab 中的第六行)

把/etc/fstab中符合以uuid開頭的行儲存到/mnt/file1

(1)把/etc/fstab 中 uuid 開頭的行儲存到/tmp/fstab

(2)檢視/etc/fstab中以uuid行是第幾行

sed '/^uuid/=' fstab 

sed '/^uuid/=' fstab -n ##-n表示只輸出符合條件的行號

4-6.i:插入模式
sed '/^uuid/i hello' sed fstab 把hello插入到fstab以uuid開頭的行前 

sed '/^uuid/i hello\nworld' sed fstab 把hello插入到fstab以uuid開頭的行前下一行插入world

5-1.文字的替換

sed 's/#/\*/g' fstab 把fstab中所有的#替換為* 

sed 's/\//+/g' fstab 把fstab中所有的/替換為+

sed 's@/@+@g' fstab 把fstab中所有的/替換為+

sed '2s/:/**/g' passwd 把passwd中第2行的:全部替換為**

sed '3,5s/:/#/g' passwd 把passwd中3-5行內容中的:全部替換為#

sed '/adm/,/lp/s/:/-/g' passwd 把passwd中/adm/開始的行到/lp/開始的行,這兩行之間的所有行中的:替換為-

sed 's/:/##/' passwd 把passwd中每行的第乙個:替換為##

sed 's/:/##/g' passwd 把passwd中全文的:替換為##

5-2.輸出內容的調整
sed 'g'

file 每一行後加以行空格行

sed '$!g'

file每一行後加以行空格行除了在最後一行

sed '='

file 每一行都加行號在內容上邊

sed '='

file | sed 'n;s/\n//' 每一行都加行號在內容前邊

sed -n '$p'

file 顯示file的最後一行內容

sed 『g』 file實驗效果每一行後加以行空格行

文字處理三劍客

文字處理三劍客 劍客一 grep 作用 行 過濾 用法 grep 正規表示式 檔案 路徑 grep e 擴充套件類正規表示式 檔案 路徑 劍客二 sed 用法 sed 選項 位址定位sed命令 檔案 路徑 sed 選項 正規表示式 sed命令 檔案 路徑 sed 選項 位址定位 正規表示式 sed命...

shell文字處理三劍客 grep

global search regular expression and print out the line 全面搜尋研究正規表示式並顯示出來 grep命令是一種強大的文字搜尋工具,根據使用者指定的 模式 對目標文字進行匹配檢查,列印匹配到的行,由正規表示式或者字元及基本文字字元所編寫的過濾條件 ...

Shell文字處理三劍客 grep sed awk

grep sed awk我們叫他們三劍客,掌握它們可以更好的運維,提公升工作效率,即使不是運維,對我們處理資料都是非常方便的 就很多資料處理來講,寫程式肯定是也能處理的,但是遠沒有已經存在特定功能的命令更高效,我們只需要操作命令即可。grep 簡介 grep常用的引數 usage grep abcd...