日本综合一区二区|亚洲中文天堂综合|日韩欧美自拍一区|男女精品天堂一区|欧美自拍第6页亚洲成人精品一区|亚洲黄色天堂一区二区成人|超碰91偷拍第一页|日韩av夜夜嗨中文字幕|久久蜜综合视频官网|精美人妻一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時(shí)間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營(yíng)銷解決方案
linux中sed命令的使用方法有哪些

這篇文章主要講解了“l(fā)inux中sed命令的使用方法有哪些”,文中的講解內(nèi)容簡(jiǎn)單清晰,易于學(xué)習(xí)與理解,下面請(qǐng)大家跟著小編的思路慢慢深入,一起來研究和學(xué)習(xí)“l(fā)inux中sed命令的使用方法有哪些”吧!

創(chuàng)新互聯(lián)為企業(yè)級(jí)客戶提高一站式互聯(lián)網(wǎng)+設(shè)計(jì)服務(wù),主要包括網(wǎng)站建設(shè)、成都網(wǎng)站制作、重慶App定制開發(fā)小程序開發(fā)、宣傳片制作、LOGO設(shè)計(jì)等,幫助客戶快速提升營(yíng)銷能力和企業(yè)形象,創(chuàng)新互聯(lián)各部門都有經(jīng)驗(yàn)豐富的經(jīng)驗(yàn),可以確保每一個(gè)作品的質(zhì)量和創(chuàng)作周期,同時(shí)每年都有很多新員工加入,為我們帶來大量新的創(chuàng)意。 

linux之sed命令:

1 初識(shí)sed

sed編輯器被稱作流編輯器,它和vim這種的交互式文本編輯器不同,是根據(jù)命令來處理數(shù)據(jù)流中的數(shù)據(jù)。會(huì)執(zhí)行下列操作:

  • 一次從輸入中讀取一行數(shù)據(jù)(重復(fù)該操作直到全部行被讀取完)

  • 根據(jù)編輯器命令匹配數(shù)據(jù)

  • 按照命令修改數(shù)據(jù)流中的數(shù)據(jù)

  • 將新數(shù)據(jù)輸出到STDOUT(標(biāo)準(zhǔn)輸出)

其中sed命令的可以從命令行中輸入,也可以從一個(gè)命令文件中讀取。

sed -e script 添加script中指定的命令
sed -f file 添加file中指定的命令

1.1 在命令行定義sed命令

來看一個(gè)簡(jiǎn)單的文本替換示例:

echo "hi,my name is xxx" | sed 's/xxx/kinsomy/'
#修改文件
sed 's/xxx/kinsomy/' data.txt
#執(zhí)行多個(gè)命令 用-e選項(xiàng),分號(hào)隔開
sed 's/xxx/kinsomy/; s/***/hhh/' data.txt

將echo輸出的數(shù)據(jù)通過管道輸入sed中,然后用s命令進(jìn)行替換,用第二個(gè)斜杠后的數(shù)據(jù)替換掉第一個(gè)斜杠后匹配的數(shù)據(jù)。

注意:sed操作文本文件中的數(shù)據(jù),僅僅是將修改的數(shù)據(jù)輸出到STDOUT,但是并不會(huì)修改文件本身的數(shù)據(jù)

1.2 從文件讀取命令

在一個(gè)文件script.sed中定義一系列的命令,方便復(fù)用。

s/*/a
s/x/b
s/-/+



# -f選項(xiàng)指定命令文件
sed -f script.sed data.txt

2 sed基礎(chǔ)

2.1替換標(biāo)記

上面的例子echo "hi,my name is xxx" | sed 's/xxx/kinsomy/'只會(huì)替換每一行中匹配到的第一個(gè)數(shù)據(jù),但是一行數(shù)據(jù)中若有多個(gè)匹配項(xiàng),則不能全部被替換掉。

echo "hi,my name is xxx, i am xxx" | sed 's/xxx/kinsomy/'
#輸出
hi,my name is kinsomy, i am xxx

這個(gè)時(shí)候可以使用一些替換標(biāo)記substitution flag來設(shè)置替換的模式。替換標(biāo)記跟在替換字符串之后。

s/pattern/replacement/flags

數(shù)字,表示將替換掉第幾處被匹配到的數(shù)據(jù)

echo "hi,my name is xxx, i am xxx" | sed 's/xxx/kinsomy/2'
#輸出 第二個(gè)xxx被替換成kinsomy
hi,my name is xxx, i am kinsomy

g,表示替換所有匹配到的數(shù)據(jù)

echo "hi,my name is xxx, i am xxx" | sed 's/xxx/kinsomy/g'
#輸出 第二個(gè)xxx被替換成kinsomy
hi,my name is kinsomy, i am kinsomy

p,表示會(huì)打印出被匹配出來的行

echo "hi,my name is xxx, i am xxx" | sed 's/xxx/kinsomy/p'
#輸出
hi,my name is kinsomy, i am xxx
hi,my name is kinsomy, i am xxx
w,將替換后輸出保存到指定文件
echo "hi,my name is xxx, i am xxx" | sed 's/xxx/kinsomy/w output.txt'

2.3 行尋址

上文說到sed命令是一行行讀取文本,進(jìn)行匹配操作數(shù)據(jù),知道所有行被遍歷完,如果這時(shí)候我們想要對(duì)特定的行做操作就要使用行尋址。 行尋址有兩種形式:

數(shù)字形式表示行

# 操作單行
$ sed '2s/xxx/***/' data.txt
# 操作一定行區(qū)間[2,4]
$ sed '2,4s/xxx/***/' data.txt
# 操作某行開始到最后[2,endline]
$ sed '2,$s/xxx/***/' data.txt

文本模式過濾器

首先在/etc/passwd內(nèi)找到kinsomy的記錄,然后將bash替換為csh。文本模式過濾器配合正則表達(dá)式會(huì)很強(qiáng)大。

sed '/kinsomy/s/bash/csh/' /etc/passwd

2.4 刪除行

使用刪除命令d對(duì)文本進(jìn)行刪除操作。

# 刪除所有文本
sed 'd' data.txt
# 刪除單行
sed '2d' data.txt
# 刪除行區(qū)間[2,3]
sed '2,3d' data.txt
# 刪除行區(qū)間[2,endline]
sed '2,$d' data.txt
# 刪除匹配文本aa的行
sed '/aa/d' data.txt
# 刪除兩個(gè)匹配文本之間的文本 匹配到1和3的行之間的文本全部被刪除
sed '/1/,/3/d' data.txt

2.5 插入、附加文本

插入命令i在指定行前增加新行

附加命令a在指定行后增加新行

# 追加
echo "Line 2" | sed 'a\
pipe quote> Line 1'
#插入
echo "Line 2" | sed 'i\
pipe quote> Line 1'

2.6 修改行

c命令用來修改一行數(shù)據(jù)

# 修改第三行文本
sed '3c\
pipe quote> change line ' data.txt

2.7 轉(zhuǎn)換命令

命令格式 sed 'y/inchar/outchar'

將inchar中的字符一一對(duì)應(yīng)地轉(zhuǎn)換成outchar的字符

echo "This 1 is a test of 1 try." | sed 'y/123/456/'
# 輸出
This 4 is a test of 4 try.

感謝各位的閱讀,以上就是“l(fā)inux中sed命令的使用方法有哪些”的內(nèi)容了,經(jīng)過本文的學(xué)習(xí)后,相信大家對(duì)linux中sed命令的使用方法有哪些這一問題有了更深刻的體會(huì),具體使用情況還需要大家實(shí)踐驗(yàn)證。這里是創(chuàng)新互聯(lián),小編將為大家推送更多相關(guān)知識(shí)點(diǎn)的文章,歡迎關(guān)注!


網(wǎng)站題目:linux中sed命令的使用方法有哪些
網(wǎng)頁(yè)路徑:http://www.dlmjj.cn/article/jhohpd.html