擅長對數(shù)據(jù)行進行處理,sed是一種流編輯器,處理時,把當前處理的行存儲在臨時緩沖區(qū)中,稱為“模式空間”(pattern space),接著用sed命令處理緩沖區(qū)中的內(nèi)容,處理完成后,把緩沖區(qū)的內(nèi)容送往屏幕。接著處理下一行,這樣不斷重復,直到文件末尾。文件內(nèi)容并沒有改變,除非你使用重定向存儲輸出。利用sed命令可以將數(shù)據(jù)行進行替換、刪除、新增、選取等特定工作。
10余年的石景山網(wǎng)站建設(shè)經(jīng)驗,針對設(shè)計、前端、開發(fā)、售后、文案、推廣等六對一服務(wù),響應快,48小時及時工作處理。全網(wǎng)營銷推廣的優(yōu)勢是能夠根據(jù)用戶設(shè)備顯示端的尺寸不同,自動調(diào)整石景山建站的顯示方式,使網(wǎng)站能夠適用不同顯示終端,在瀏覽器中調(diào)整網(wǎng)站的寬度,無論在任何一種瀏覽器上瀏覽網(wǎng)站,都能展現(xiàn)優(yōu)雅布局與設(shè)計,從而大程度地提升瀏覽體驗。創(chuàng)新互聯(lián)建站從事“石景山網(wǎng)站設(shè)計”,“石景山網(wǎng)站推廣”以來,每個客戶項目都認真落實執(zhí)行。
sed [選項] '操作' 參數(shù)
sed [選項] -f scriptfile 參數(shù)
-e 或--expression=:表示用指定命令或者腳本來處理輸入的文本文件。
-f 或--file=:表示用指定的腳本文件來處理輸入的文本文件。
-h 或--help:顯示幫助。
-n、--quiet 或 silent:表示僅顯示處理后的結(jié)果。
-i:直接編輯文本文件。
a:增加,在當前行下面增加一行指定內(nèi)容。
c:替換,將選定行替換為指定內(nèi)容。
d:刪除,刪除選定的行。
i:插入,在選定行上面插入一行指定內(nèi)容。
p:打印,如果同時指定行,表示打印指定行;如果不指定行,則表示打印所有內(nèi)容;如果有非打印字符,則以 ASCII 碼輸出。其通常與“-n”選項一起使用。
s:替換,替換指定字符。
y:字符轉(zhuǎn)換。
sed -n 'p' test.txt 輸出所有內(nèi)容
[root@localhost ~]# sed -n 'p' test.txt
the football
you are best boy
PI=3.1415926535897
a wood cross
hello.
the boy
sed -n '2p' test.txt 輸出第2行的內(nèi)容
sed -n '2,5p' test.txt 輸出2到5行的內(nèi)容
sed -n 'p;n' test.txt 輸出所有奇數(shù)行的內(nèi)容,n表示讀入下一行資料
sed -n 'n;p' test.txt 輸出所有偶數(shù)行的內(nèi)容
[root@localhost ~]# sed -n 'p;n' test.txt
the football
PI=3.1415926535897
the boy
[root@localhost ~]# sed -n 'n;p' test.txt
you are best boy
a wood cross
hello.
sed -n '2,5{p;n}' test.txt 輸出2到5行中的奇數(shù)行
此時的奇數(shù)行是原來的第二行,是按照選擇的行數(shù)的奇偶數(shù)決定的
[root@localhost ~]# sed -n '2,5{p;n}' test.txt
you are best boy
a wood cross
以上是 sed 命令的基本用法,sed 命令結(jié)合正則表達式時,格式略有不同,正則表達式以“/”包圍。例如,以下操作是 sed 命令與正則表達式結(jié)合使用的示例。
[root@localhost ~]# sed -n '/the/p' test.txt 輸出包含the的行
the football
the boy
sed -n '4,/the/p' test.txt 輸出從第四行到包含第一個the的行
[root@localhost ~]# sed -n '4,/the/p' test.txt
a wood cross
hello.
the boy
sed -n '/the/=' test.txt 輸出包含the的所在行號
[root@localhost ~]# sed -n '/the/=' test.txt
1
7
sed -n '/^PI/p' test.txt 輸出以PI開頭的行
sed -n '/[0-9]$/p' test.txt 輸出以數(shù)字為結(jié)尾的行
sed -n '/\/p' test.txt 輸出包含單詞wood的行
[root@localhost ~]# sed -n '/^PI/p' test.txt
PI=3.1415926535897
[root@localhost ~]# sed -n '/[0-9]$/p' test.txt
PI=3.1415926535897
[root@localhost ~]# sed -n '/\/p' test.txt
a wood cross
nl test.txt | sed '3d' 刪除第三行
nl test.txt | sed '3,5d' 刪除3到5行
nl test.txt | sed '/cross/d' 刪除帶有cross的行 不包含用!取反
[root@localhost ~]# nl test.txt | sed '3d'
1 the football
2 you are best boy
4 a wood cross
5 hello.
6 the boy
[root@localhost ~]# nl test.txt | sed '3,5d'
1 the football
2 you are best boy
5 hello.
6 the boy
[root@localhost ~]# nl test.txt | sed '/\/d'
1 the football
2 you are best boy
3 PI=3.1415926535897
4 a wood cross
6 the boy
sed '/^[a-zA-Z]/d' test.txt 刪除以字母開頭的行
sed '/.$/d' test.txt 刪除以.結(jié)尾的行
sed '/^$/d' test.txt 刪除空格的行
[root@localhost ~]# sed '/^[a-zA-Z]/d' test.txt
[root@localhost ~]# sed '/\.$/d' test.txt
the football
you are best boy
PI=3.1415926535897
a wood cross
the boy
[root@localhost ~]# sed '/^$/d' test.txt
the football
you are best boy
PI=3.1415926535897
a wood cross
hello.
the boy
注意: 若是刪除重復的空行,即連續(xù)的空行只保留一個, 執(zhí)行“ sed –e ‘/^$/{n;/^$/d}’test.txt”命令即可實現(xiàn)。其效果與“cat -s test.txt”相同,n 表示讀下一行數(shù)據(jù)。
s(字符串替換)
c(整行/整塊替換)
y(字符轉(zhuǎn)換)命令選項,常見的用法如下所示。
H,復制到剪貼板;
g、G,將剪貼板中的數(shù)據(jù)覆蓋/追加至指定行;
w,保存為文件;
r,讀取指定文件;
a,追加指定內(nèi)容。
使用 sed 腳本,將多個編輯指令存放到文件中(每行一條編輯指令),通過“-f”選項來調(diào)用。
[root@localhost ~]# vi opt.list 1,5H
1,5d
17G
[root@localhost ~]# sed -f opt.list test.txt
編寫一個腳本,用來調(diào)整 vsftpd 服務(wù)配置:禁止匿名用戶,但允許本地用戶(也允許寫入)。
另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)cdcxhl.cn,海內(nèi)外云服務(wù)器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國服務(wù)器、虛擬主機、免備案服務(wù)器”等云主機租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務(wù)可用性高、性價比高”等特點與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應用場景需求。