成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

shell sed實(shí)例詳解

系統(tǒng) Linux
本文通過(guò)實(shí)例的形式詳細(xì)講述了shell sed的知識(shí),幫助大家更加深入的了解shell sed。

一、sed (Stream Editor)

1、定位行:

sed -n '12,~3p' pass #從第12行開(kāi)始,直到下一個(gè)3的倍數(shù)行(12-15行)

sed -n '12,+4p' pass #從第12行開(kāi)始,連續(xù)4行(12-16行)

sed -n '12~3p' pass #從第12行開(kāi)始,間隔3行輸出一次(12,15,18,21...)

sed -n '10,$p' pass #從第10行至結(jié)尾

sed -n '4!p' pass #除去第4行

2、正則:'/正則式/'

sed -n '/root/p' /etc/passwd

sed -n '/^root/p' /etc/passwd

sed -n '/bash$/p' /etc/passwd

sed -n '/ro.t/p' /etc/passwd

sed -n '/ro*/p' /etc/passwd

sed -n '/[ABC]/p' /etc/passwd

sed -n '/[A-Z]/p' /etc/passwd

sed -n '/[^ABC]/p' /etc/passwd

sed -n '/^[^ABC]/p' /etc/passwd

sed -n '/\<root/p' /etc/passwd

sed -n '/root\>/p' /etc/passwd

3、擴(kuò)展正則:

sed -n '/root\|yerik/p' /etc/passwd #拓展正則需要轉(zhuǎn)義

sed -nr '/root|yerik/p' /etc/passwd #加-r參數(shù)支持拓展正則

sed -nr '/ro(ot|ye)rik/p' /etc/passwd #匹配rootrik和royerik單詞

sed -nr '/ro?t/p' /etc/passwd #?匹配0-1次前導(dǎo)字符

sed -nr '/ro+t/p' /etc/passwd #匹配1-n次前導(dǎo)字符

sed -nr '/ro{2}t/p' /etc/passwd #匹配2次前導(dǎo)字符

sed -nr '/ro{2,}t/p' /etc/passwd #匹配多于2次前導(dǎo)字符

sed -nr '/ro{2,4}t/p' /etc/passwd #匹配2-4次前導(dǎo)字符

sed -nr '/(root)*/p' /etc/passwd #匹配0-n次前導(dǎo)單詞

4、sed編輯(對(duì)行的插入、刪除、替換操作)

sed '/root/a admin' /etc/passwd #在root行后追加一個(gè)admin行

sed '/root/i admin' /etc/passwd #在root行前插入一個(gè)admin

sed '/root/c admin' /etc/passwd #將root行替換為admin

sed '/root/d' /etc/passwd #刪除含有root的行

s替換

sed -n 's/root/admin/p' /etc/passwd

sed -n 's/root/admin/2p' /etc/passwd #在每行的第2個(gè)root作替換

sed -n 's/root/admin/gp' /etc/passwd

sed -n '1,10 s/root/admin/gp' /etc/passwd

sed -n 's/root/AAA&BBB/2p' /etc/passwd #將root替換成AAArootBBB,&作反向引用,代替前面的匹配項(xiàng)

sed -ne 's/root/AAA&BBB/' -ne 's/bash/AAA&BBB/p' /etc/passwd #-e將多個(gè)命令連接起來(lái),將root或bash行作替換

sed -n 's/root/AAA&BBB/;s/bash/AAA&BBB/p' /etc/passwd #與上命令功能相同

sed -nr 's/(root)(.*)(bash)/\3\2\1/p' /etc/passwd #將root與bash位置替換,兩標(biāo)記替換
或sed -n 's/\(root\)\(.*\)\(bash\)/\3\2\1/p' /etc/passwd

bash:x:0:0:root:/root:/bin/root

y替換

echo "sorry"|sed 'y/ory/ABC/' #一一對(duì)應(yīng)替換(sABBC)

6、sed的模式空間和保持空間

h:模式---->保持

H:模式--->>保持

x:模式<--->保持

g:保持---->模式

G:保持--->>模式

例如:

111

222

333

444

# sed '1h;2,3H;4G'

分析

CMD 模式 保持

111 111 \n

1h 111 111

----------->111

222 222 111

2,3H 222 111\n222

----------->222

333 333 111\n222

2,3H 333 111\n222\n333

----------->333

444 444 111\n222\n333

4G 444\n111\n222\n333

----------->444\n111\n222\n333

1-10

11-22

22-33

11-22

34-END

7、sed特殊用法

sed -n '/root/w a.txt' #將匹配行輸出到文件

sed '/root/r abc.txt' /etc/passwd #把a(bǔ)bc.txt的文件內(nèi)容讀入到root匹配行后

sed -n '/root/w a.txt'

sed -n '/root/{=;p}' /etc/passwd #打印行號(hào)和匹配root的行

sed -n '/root/{n;d}' /etc/passwd #將匹配root行的下一行刪除

sed -n '/root/{N;d}' /etc/passwd #將匹配root行和下一行都刪除

sed '22{h;d};23,33{H;d};44G' pass

8、sed 腳本編寫(xiě)方法

<1>從文件讀入命令

sed -f sed.sh

sed.sh文件內(nèi)容:

s/root/yerik/p

s/bash/csh/p

<2>直接運(yùn)行腳本 ./sed.sh /etc/passwd

#!/bib/sed -f

s/root/yerik/p

s/bash/csh/p

###################################

二、Sed練習(xí)

1,刪除文件每行的第一個(gè)字符。

sed -n 's/^.//gp' /etc/passwd

sed -nr 's/(.)(.*)/\2/p' /etc/passwd

2,刪除文件每行的第二個(gè)字符。

sed -nr 's/(.)(.)(.*)/\1\3/p' /etc/passwd

3,刪除文件每行的最后一個(gè)字符。

sed -nr 's/.$//p' /etc/passwd

sed -nr 's/(.*)(.)/\1/p' /etc/passwd

4,刪除文件每行的倒數(shù)第二個(gè)字符。

sed -nr 's/(.*)(.)(.)/\1\3/p' /etc/passwd

5,刪除文件每行的第二個(gè)單詞。

sed -nr 's/([^a-Z]*)([a-Z]+)([^a-Z]+)([a-Z]+)(.*)/\1\2\3\5/p' /etc/passwd

6,刪除文件每行的倒數(shù)第二個(gè)單詞。

sed -nr 's/(.*)([^a-Z]+)([a-Z]+)([^a-Z]+)([a-Z]+)([^a-Z]*)/\1\2\4\5\6/p' /etc/samba/smb.conf

7,刪除文件每行的最后一個(gè)單詞。

sed -nr 's/(.*)([^a-Z]+)([a-Z]+)([^a-Z]*)/\1\2\4/p' /etc/samba/smb.conf

8,交換每行的第一個(gè)字符和第二個(gè)字符。

sed -nr 's/(.)(.)(.*)/\2\1\3/p' /etc/passwd

9,交換每行的第一個(gè)單詞和第二個(gè)單詞。

sed -nr 's/([^a-Z]*)([a-Z]+)([^a-Z]+)([a-Z]+)(.*)/\1\4\3\2\5/p' /etc/samba/smb.conf

10,交換每行的第一個(gè)單詞和最后一個(gè)單詞。

sed -nr 's/([^a-Z]*)([a-Z]+)([^a-Z]+)([a-Z]+)(.*)/\1\4\3\2\5/p' /etc/passwd

11,刪除一個(gè)文件中所有的數(shù)字。

sed 's/[0-9]*//g' /etc/passwd

12,刪除每行開(kāi)頭的所有空格。

sed -n 's/^\ *//p' /etc/samba/smb.conf

sed -nr 's/( *)(.*)/\2/p' testp

13,用制表符替換文件中出現(xiàn)的所有空格。

sed -n 's/\ /\t/gp' pass

14,把所有大寫(xiě)字母用括號(hào)()括起來(lái)。

sed -nr 's/([A-Z])/(&)/gp' testp

sed -n 's/[A-Z]/(&)/gp' testp

15,打印每行3次。

sed 'p;p' pass

16,隔行刪除。

sed -n '1~2p' pass

17,把文件從第22行到第33行復(fù)制到第44行后面。

sed '1,21h;22h;23,33H;44G' pass

18,把文件從第22行到第33行移動(dòng)到第44行后面。

sed '22{h;d};23,33{H;d};44G' pass

19,只顯示每行的第一個(gè)單詞。

sed -nr 's/([^a-Z]*)([a-Z]+)([^a-Z]+)(.*)/\2/p' /etc/passwd

20,打印每行的第一個(gè)單詞和第三個(gè)單詞。

sed -nr 's/([^a-Z]*)([a-Z]+)([^a-Z]+)([a-Z]+)([^a-Z]+)([a-Z]+)(.*)/\2--\4/p' /etc/passwd

21,將格式為 mm/yy/dd 的日期格式換成 mm;yy;dd

date +%m/%Y/%d |sed -n 's#/#;#gp'

22, 逆向輸出

cat a.txt

ABC

DEF

XYZ

輸出樣式變成

XYZ

DEF

ABC

原文鏈接:http://blog.uouo123.com/post/191.html

責(zé)任編輯:牛小雨 來(lái)源: blog.uouo123
相關(guān)推薦

2019-09-12 08:32:40

Linuxsed命令語(yǔ)法

2019-08-14 08:03:49

LinuxShell腳本web服務(wù)

2009-07-09 15:05:45

Servlet實(shí)例

2024-11-27 09:19:25

2014-08-06 09:57:15

hadoop ShelShell命令

2009-06-11 08:59:35

2020-11-16 11:10:00

ShellLinux正則表達(dá)式

2019-08-09 13:50:08

shellLinux

2017-06-27 14:15:22

LinuxShellsed

2009-06-10 14:53:25

netbeans st實(shí)例

2010-06-22 10:28:04

linux at命令

2011-06-24 14:34:17

Qt 小票 打印

2011-03-09 09:11:52

java反射機(jī)制

2022-12-02 09:02:36

Swift代碼異步

2010-04-26 13:36:33

Unix Shell

2010-06-03 17:08:28

Hadoop Shel

2013-12-02 09:49:59

2010-06-24 16:55:47

Linux chgrp

2012-02-14 15:51:13

JavaHibernate

2011-04-12 08:40:23

IMFAndroid
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)

主站蜘蛛池模板: 99久久日韩精品免费热麻豆美女 | 九九久久精品 | 午夜免费在线电影 | 亚洲一二三区av | 亚洲综合婷婷 | 久久国产精品亚洲 | 亚洲狠狠爱 | 中文字幕成人免费视频 | 嫩草视频网 | 久久一日本道色综合久久 | 国产精品视频一二三区 | 超碰在线播 | 黄色毛片网站在线观看 | 91精品观看 | 久久躁日日躁aaaaxxxx | 在线免费观看毛片 | 欧美日韩亚洲视频 | 日韩电影中文字幕 | 国产午夜精品视频 | 99国产精品视频免费观看一公开 | 婷婷开心激情综合五月天 | 久久一二区 | 欧美 日韩 亚洲91麻豆精品 | 国产精品99精品久久免费 | h视频免费在线观看 | 作爱视频免费看 | 日韩不卡一区二区三区 | 日本啊v在线 | 色婷婷综合久久久中字幕精品久久 | 国产剧情一区 | 国产精品无码永久免费888 | 亚洲欧美日韩网站 | 国产不卡一区 | 日韩在线中文 | 久久精品国产亚洲 | 北条麻妃一区二区三区在线观看 | 一区二区国产精品 | 五月激情综合 | 91久久久久 | 精品日韩一区二区 | 日韩欧美1区2区 |