真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

Shell編程之正則表達(dá)式三劍客——sed工具

sed工具概述

擅長對數(shù)據(jù)行進(jìn)行處理,sed是一種流編輯器,處理時(shí),把當(dāng)前處理的行存儲在臨時(shí)緩沖區(qū)中,稱為“模式空間”(pattern space),接著用sed命令處理緩沖區(qū)中的內(nèi)容,處理完成后,把緩沖區(qū)的內(nèi)容送往屏幕。接著處理下一行,這樣不斷重復(fù),直到文件末尾。文件內(nèi)容并沒有改變,除非你使用重定向存儲輸出。利用sed命令可以將數(shù)據(jù)行進(jìn)行替換、刪除、新增、選取等特定工作。

在呈貢等地區(qū),都構(gòu)建了全面的區(qū)域性戰(zhàn)略布局,加強(qiáng)發(fā)展的系統(tǒng)性、市場前瞻性、產(chǎn)品創(chuàng)新能力,以專注、極致的服務(wù)理念,為客戶提供網(wǎng)站制作、成都網(wǎng)站制作 網(wǎng)站設(shè)計(jì)制作按需求定制開發(fā),公司網(wǎng)站建設(shè),企業(yè)網(wǎng)站建設(shè),高端網(wǎng)站設(shè)計(jì),網(wǎng)絡(luò)營銷推廣,成都外貿(mào)網(wǎng)站制作,呈貢網(wǎng)站建設(shè)費(fèi)用合理。

sed命令常見用法

sed [選項(xiàng)] '操作' 參數(shù)
sed [選項(xiàng)] -f scriptfile 參數(shù)
常見的sed命令選項(xiàng)主要包含以下幾種

-e 或--expression=:表示用指定命令或者腳本來處理輸入的文本文件。
-f 或--file=:表示用指定的腳本文件來處理輸入的文本文件。
-h 或--help:顯示幫助。
-n、--quiet 或 silent:表示僅顯示處理后的結(jié)果。
-i:直接編輯文本文件。

“操作”用于指定對文件操作的動作行為,也就是 sed 的命令。通常情況下是采用的“[n1[,n2]]”操作參數(shù)的格式。n1、n2 是可選的,不一定會存在,代表選擇進(jìn)行操作的行數(shù)

a:增加,在當(dāng)前行下面增加一行指定內(nèi)容。
c:替換,將選定行替換為指定內(nèi)容。
d:刪除,刪除選定的行。
i:插入,在選定行上面插入一行指定內(nèi)容。
p:打印,如果同時(shí)指定行,表示打印指定行;如果不指定行,則表示打印所有內(nèi)容;如果有非打印字符,則以 ASCII 碼輸出。其通常與“-n”選項(xiàng)一起使用。
s:替換,替換指定字符。
y:字符轉(zhuǎn)換。

用法示例

1,輸出符合條件的文本(p表達(dá)正常輸出)

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ù)的奇偶數(shù)決定的

[root@localhost ~]# sed -n '2,5{p;n}' test.txt 
you are best boy
a wood cross

以上是 sed 命令的基本用法,sed 命令結(jié)合正則表達(dá)式時(shí),格式略有不同,正則表達(dá)式以“/”包圍。例如,以下操作是 sed 命令與正則表達(dá)式結(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
2,刪除符合條件的文本(d)
下面的命令中nl命令用于計(jì)算文件的行數(shù),結(jié)合該命令以更加直觀查看到命令執(zhí)行的結(jié)果

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

注意: 若是刪除重復(fù)的空行,即連續(xù)的空行只保留一個, 執(zhí)行“ sed –e ‘/^$/{n;/^$/d}’test.txt”命令即可實(shí)現(xiàn)。其效果與“cat -s test.txt”相同,n 表示讀下一行數(shù)據(jù)。

3,替換符合條件的文本

s(字符串替換)
c(整行/整塊替換)
y(字符轉(zhuǎn)換)命令選項(xiàng),常見的用法如下所示。
Shell編程之正則表達(dá)式三劍客——sed工具

4,遷移符合條件的文本

H,復(fù)制到剪貼板;
g、G,將剪貼板中的數(shù)據(jù)覆蓋/追加至指定行;
w,保存為文件;
r,讀取指定文件;
a,追加指定內(nèi)容。

Shell編程之正則表達(dá)式三劍客——sed工具

5,使用腳本編輯文件

使用 sed 腳本,將多個編輯指令存放到文件中(每行一條編輯指令),通過“-f”選項(xiàng)來調(diào)用。

例如:sed '1,5{H;d};17G' test.txt //將第 1~5 行內(nèi)容轉(zhuǎn)移至第 17 行后
以上操作改用腳本文件方式
[root@localhost ~]# vi opt.list 1,5H
1,5d
17G
[root@localhost ~]# sed -f opt.list test.txt
6,sed直接操作文件示例

編寫一個腳本,用來調(diào)整 vsftpd 服務(wù)配置:禁止匿名用戶,但允許本地用戶(也允許寫入)。
Shell編程之正則表達(dá)式三劍客——sed工具

謝謝閱讀?。?!


標(biāo)題名稱:Shell編程之正則表達(dá)式三劍客——sed工具
文章地址:http://weahome.cn/article/gjppoe.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部