sed 是一個(gè)文本處理工具,可以將數(shù)據(jù)進(jìn)行替換、新增、選取等特定工作
公司主營(yíng)業(yè)務(wù):成都網(wǎng)站設(shè)計(jì)、成都網(wǎng)站建設(shè)、移動(dòng)網(wǎng)站開(kāi)發(fā)等業(yè)務(wù)。幫助企業(yè)客戶真正實(shí)現(xiàn)互聯(lián)網(wǎng)宣傳,提高企業(yè)的競(jìng)爭(zhēng)能力。創(chuàng)新互聯(lián)公司是一支青春激揚(yáng)、勤奮敬業(yè)、活力青春激揚(yáng)、勤奮敬業(yè)、活力澎湃、和諧高效的團(tuán)隊(duì)。公司秉承以“開(kāi)放、自由、嚴(yán)謹(jǐn)、自律”為核心的企業(yè)文化,感謝他們對(duì)我們的高要求,感謝他們從不同領(lǐng)域給我們帶來(lái)的挑戰(zhàn),讓我們激情的團(tuán)隊(duì)有機(jī)會(huì)用頭腦與智慧不斷的給客戶帶來(lái)驚喜。創(chuàng)新互聯(lián)公司推出呼圖壁免費(fèi)做網(wǎng)站回饋大家。
格式
sed 選項(xiàng) 動(dòng)作 文件名
使用sed替換文件中某個(gè)域的字段
比如寫的一個(gè)yaml文件中間有個(gè)字段需要修改,可以使用sed在外面命令行進(jìn)行替換
格式:sed 's/原字符/新的字符/‘ 文件名
[root@zhaocheng ~]# sed 's/systemctl/service/' filetest
root:$1$dDTFylQ3$.vTZKpm7mrra9WMsxvBfW.:18241:0:99999:7
bin:*:17834:0:99999:7:dad
lp:*:17834:0:99999:7ada
sync:*:17834:0:99999:7:::gg
shutdown:*:17834:0:99999:7::da
halt:*:17834:0:99999:7::fsda
nginx:!!:18289::::::daaf
rabbitmq:!!:18297:::::dada
service start MySQLd
dadad:nginx:sdada
上面輸出的只會(huì)輸出到屏幕上,并不會(huì)修改文件,如果直接替換可以添加-i
[root@zhaocheng ~]# sed -i 's/systemctl/service/' filetest
[root@zhaocheng ~]# cat filetest
root:$1$dDTFylQ3$.vTZKpm7mrra9WMsxvBfW.:18241:0:99999:7
bin:*:17834:0:99999:7:dad
lp:*:17834:0:99999:7ada
sync:*:17834:0:99999:7:::gg
shutdown:*:17834:0:99999:7::da
halt:*:17834:0:99999:7::fsda
nginx:!!:18289::::::daaf
rabbitmq:!!:18297:::::dada
service start mysqld
dadad:nginx:sdada
sed 參數(shù)含義指令
常用命令:
a 新增
c 取代
d 刪除
i 插入
p 列印
s 取代
刪除某行
如果處理文本的時(shí)候需要進(jìn)行一些行的刪除,可以使用d,代表刪除
不加sed -i 不會(huì)刪除,不加只會(huì)顯示屏幕上
[root@zhaocheng]# sed '1d' filetest //刪除第一行
[root@zhaocheng]# sed '$d' filetest //刪除最后一行
[root@zhaocheng]# sed '1,2d' filetest //刪除第一行到第二行
[root@zhaocheng]# sed '3,$d' filetest //刪除第三行到最后一行
顯示某行
比如處理文本的時(shí)候需要提取文本的某個(gè)某行
[root@zhaocheng]# sed -n '1p' filetest //顯示第一行
[root@zhaocheng]# sed -n '$p' filetest //顯示最后一行
[root@zhaocheng]# sed -n '1,2p' filetest //顯示第一行到第二行
[root@zhaocheng]# sed -n '3,$p' filetest //顯示第三行到最后一行
使用模式進(jìn)行查詢
比如處理比較大的文本想找出這個(gè)字段,那么直接可以使用-n 參數(shù)顯示,動(dòng)作指定需要提取的關(guān)鍵詞,p進(jìn)行打印
[root@zhaocheng]# sed -n '/bin/p' filetest //查詢包括關(guān)鍵字bin所在所有行
[root@zhaocheng]# sed -n '/\$/p' filetest
service start mysqld$
//查詢包括關(guān)鍵字$所在所有行,使用反斜線\屏蔽特殊含義,不然識(shí)別不出
新增一行或者多行字符串
比如處理文本進(jìn)行添加字段,并指定添加到某行,可以使用a,是增加,1a就是在第一行下去增加,如果字段比較多可以使用在vim中使用set nu,顯示行號(hào),或者直接在命令行使用cat -n 直接顯示行號(hào),在命令行使用sed '行數(shù)a xxxxxx 文件名
在第一行的下面新增一行
[root@zhaocheng ~]# sed '1a sed is very useful' filetest
bin:*:17834:0:99999:7:dad
sed is very useful
lp:*:17834:0:99999:7ada
sync:*:17834:0:99999:7:::gg
shutdown:*:17834:0:99999:7::da
halt:*:17834:0:99999:7::fsda
nginx:!!:18289::::::daaf
rabbitmq:!!:18297:::::dada
service start mysqld$
dadad:nginx:sdada%
在第2行與第3行增加sed is very useful
[root@zhaocheng ~]# sed '2,3a sed is very useful' filetest
bin:*:17834:0:99999:7:dad
lp:*:17834:0:99999:7ada
sed is very useful
sync:*:17834:0:99999:7:::gg
sed is very useful
進(jìn)行替代行,這里我將第一行替換成kuberntes,1c就是第一行,c就是替換
[root@zhaocheng ~]# sed '1c kubernetes' filetest
kubernetes
lp:*:17834:0:99999:7ada
sync:*:17834:0:99999:7:::gg
shutdown:*:17834:0:99999:7::da
halt:*:17834:0:99999:7::fsda
nginx:!!:18289::::::daaf
rabbitmq:!!:18297:::::dada
service start mysqld$
dadad:nginx:sdada%
將這個(gè)文本的最后一行添加jenkins,$就是最后一行,a是添加
[root@zhaocheng ~]# sed -i '$a jenkins' filetest
[root@zhaocheng ~]# cat filetest
hellp
sync:*:17834:0:99999:7:::gg
shutdown:*:17834:0:99999:7::da
halt:*:17834:0:99999:7::fsda
dadad:nginx:sdada%
jenkins
刪除匹配的行,匹配的jenkins這個(gè)行,進(jìn)行刪除
[root@zhaocheng ~]# sed -i '/jenkins/d' filetest
[root@zhaocheng ~]# cat filetest
hellp
sync:*:17834:0:99999:7:::gg
shutdown:*:17834:0:99999:7::da
halt:*:17834:0:99999:7::fsda
dadad:nginx:sdada%
匹配文本中帶#的并刪除掉,這里使用^以#開(kāi)頭/d是刪除
[root@zhaocheng ~]# cat filetest
#hellp
#sync:*:17834:0:99999:7:::gg
#shutdown:*:17834:0:99999:7::da
halt:*:17834:0:99999:7::fsda
dadad:nginx:sdada%
[root@zhaocheng ~]# sed -i '/^#/d' filetest
[root@zhaocheng ~]# cat filetest
halt:*:17834:0:99999:7::fsda
dadad:nginx:sdada%
刪除文本中每行的首數(shù)字
[root@zhaocheng ~]# cat filetest
1fghjkl
2ghjkl;'
3fghjkl;
4dfghjkl;
[root@zhaocheng ~]# sed -i 's/^[0-9]//g' filetest
[root@zhaocheng ~]# cat filetest
fghjkl
ghjkl;'
fghjkl;
dfghjkl;
分享名稱:sed命令常用命令
轉(zhuǎn)載注明:http://aaarwkj.com/article4/igehoe.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供品牌網(wǎng)站設(shè)計(jì)、標(biāo)簽優(yōu)化、做網(wǎng)站、云服務(wù)器、外貿(mào)建站、全網(wǎng)營(yíng)銷推廣
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)