日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

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

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
命令行編輯器——sed在linux系統(tǒng)中的應(yīng)用(sed的linux)

命令行編輯器——sed在Linux系統(tǒng)中的應(yīng)用

Linux操作系統(tǒng)是一種開源操作系統(tǒng),擁有許多強(qiáng)大的功能和工具,其中一個(gè)重要的工具就是命令行編輯器sed。sed是Stream Editor的縮寫,是一種非交互式的文本編輯器,能夠通過命令行編輯文本文件,實(shí)現(xiàn)文本文件的替換、刪除、添加、查詢等多種編輯操作。在Linux系統(tǒng)中,sed是一種最常用的命令行工具之一,它能夠有效地簡化文本文件的處理過程,提高工作效率。本文將介紹sed工具的基本用法及其在Linux系統(tǒng)中的應(yīng)用。

一、sed的基本使用方法

sed命令的基本格式為:

$ sed [選項(xiàng)] ‘編輯命令’ 文件名

其中,選項(xiàng)包括:

-i:直接修改文件內(nèi)容而不是輸出到終端顯示;

-n:不顯示處理過程輸出;

-e:允許進(jìn)行多個(gè)編輯操作;

-r或-E:使用擴(kuò)展正則表達(dá)式;

基本編輯命令包括:

s命令:替換文本中的內(nèi)容;

d命令:刪除文本中的行;

p命令:打印匹配的文本行;

a命令:在文本的特定行之后添加一行文本;

i命令:在文本的特定行之前添加一行文本。

二、sed在Linux系統(tǒng)中的應(yīng)用

1.文本內(nèi)容的替換

在Linux系統(tǒng)中,我們可以使用sed命令對文本中的內(nèi)容進(jìn)行替換。例如,我們要將文本中的apple替換為orange,可以使用以下命令:

$ sed ‘s/apple/orange/g’ filename.txt

其中,s命令表示替換,g表示全部替換。這個(gè)命令會(huì)將filename.txt中所有的apple替換成orange。

2.刪除指定行

使用sed也可以刪除文本文件中的特定行。比如,我們要?jiǎng)h除文件中第5行到第10行的內(nèi)容,可以使用以下命令:

$ sed ‘5,10d’ filename.txt

其中,d命令表示刪除,5,10表示刪除第5行到第10行的內(nèi)容。

3.文本內(nèi)容的添加

在Linux系統(tǒng)中,我們也可以使用sed命令對文本中的內(nèi)容進(jìn)行添加。比如,我們要在第3行后添加一行內(nèi)容,可以使用以下命令:

$ sed ‘3a\ This is a new line.’ filename.txt

其中,a命令表示在特定行之后添加一行文本,\用于轉(zhuǎn)義。

4.文本中的搜索

使用sed也可以在文本中進(jìn)行搜索。比如,我們要在文件filename.txt中搜索包含”apple”的行,可以使用以下命令:

$ sed -n ‘/apple/p’ filename.txt

其中,-n表示不顯示處理過程的輸出,/apple/p表示搜索包含”apple”的行并打印。

5.正則表達(dá)式的運(yùn)用

sed能夠支持?jǐn)U展正則表達(dá)式的運(yùn)用,可以極大地方便我們的文本編輯工作。比如,我們要使用擴(kuò)展正則表達(dá)式來替換文本中的數(shù)字,可以使用以下命令:

$ sed -E ‘s/[0-9]+/#/g’ filename.txt

其中,-E表示使用擴(kuò)展正則表達(dá)式,s/[0-9]+/#/g表示替換文本中的數(shù)字為#。

結(jié)語

sed是Linux系統(tǒng)中非常常用的命令行文本編輯器,其強(qiáng)大的編輯功能與簡單的使用方式相結(jié)合,使得我們能夠更快捷地對文本文件進(jìn)行編輯操作。在平時(shí)的工作中,深入掌握sed命令的使用方法及其應(yīng)用領(lǐng)域,能夠提高我們的工作效率,實(shí)現(xiàn)更加便捷的文本編輯。

成都網(wǎng)站建設(shè)公司-創(chuàng)新互聯(lián)為您提供網(wǎng)站建設(shè)、網(wǎng)站制作、網(wǎng)頁設(shè)計(jì)及定制高端網(wǎng)站建設(shè)服務(wù)!

linux shell sed命令用法

sed替換命令的結(jié)構(gòu)為: s/A/B/

你在最后少了個(gè)斜杠/,結(jié)吵沖差構(gòu)不完整判納,會(huì)報(bào)升皮錯(cuò)。

修改為:

A=hello

ar=$(date “+%Y%m%d”)

echo A | sed “s/he/$Var/”

我注意到你結(jié)尾脊灶兄忘寫櫻襲斜杠了。

echo $A |  sed 辯答”s/he/$Var/”

s/::RE::/::DT::/::OPTION::

是這個(gè)語法…

$ echo $A | sed “s/he/$Var/游握孫”

llo

幫你試過了神鏈皮孝

linux之sed用法

sed是一個(gè)很好的文件處理工具,本身是一個(gè)管道命令,主要是以行為單位進(jìn)行處理,可以將數(shù)據(jù)行進(jìn)行替換、刪除、新增、選取等特定工作。

sed命令行格式為:

sed ‘command’ 輸入文本

常用選項(xiàng):

n∶使用安靜(silent)模式。在一般 sed 的用法中,所有來自 STDIN的資料一般都會(huì)被列出到螢?zāi)簧?。但如果加?-n 參數(shù)后,則只有經(jīng)過sed 特殊處理的那一行(或者動(dòng)作)才會(huì)被列出來。

e∶直接在指令列模式上進(jìn)行 sed 的動(dòng)作編輯;

f∶直接將 sed 的動(dòng)作寫在一個(gè)檔案內(nèi), -f filename 則可以執(zhí)行 filename 內(nèi)的sed 動(dòng)作;

r∶sed 的動(dòng)作支援的是延伸型耐嫌正規(guī)表示法的語法。(預(yù)設(shè)是基礎(chǔ)正規(guī)表示法語法)

i∶直接修改讀取的檔案內(nèi)容,而不是由螢?zāi)惠敵觥?/p>

常用命令:

a ∶新增, a 的后面可以接字串,而這些字串會(huì)在新的一行出現(xiàn)(目前的下一行)~

c ∶取代, c 的后面昌歷手可以接字串,這些字串可以取代 n1,n2 之間的行!

d ∶刪除,因?yàn)槭莿h除啊,所以 d 后面通常不接任何咚咚;

i ∶插入, i 的后面可以接字串,而這些字串會(huì)在新的一行出現(xiàn)(目前的上一行);

p ∶列印,亦即將某個(gè)選擇的資料印出。通常 p 會(huì)與參數(shù) sed -n 一起運(yùn)作~

s ∶取代,可以直接進(jìn)行取代的工作哩!通常這個(gè) s 的動(dòng)作可以搭配正規(guī)表示法!例如 1,20s/old/new/g 就是。

舉例:(假設(shè)我們有一文件名為ab)

刪除某行

# sed ‘1d’ ab#刪除之一行

# sed ‘$d’ ab#刪除最后一行

# sed ‘1,2d’ ab#刪除之一行到第二行

# sed ‘2,$d’ ab#刪除第二行到最后一行

  顯示某行

. # sed -n ‘1p’ ab#顯示之一行

# sed -n ‘$p’ ab#顯示最后一行

# sed -n ‘1,2p’ ab#顯示之一行到第二行

# sed -n ‘2,$p’ ab#顯示第二行到最后一行

  使用模式進(jìn)行查詢

# sed -n ‘/ruby/p’ ab #查詢爛悄包括關(guān)鍵字ruby所在所有行

# sed -n ‘/\$/p’ ab#查詢包括關(guān)鍵字$所在所有行,使用反斜線\屏蔽特殊含義

  增加一行或多行字符串

# cat ab

Hello!

ruby is me,welcome to my blog.

end

# sed ‘1a drink tea’ ab #之一行后增加字符串”drink tea”

Hello!

drink tea

ruby is me,welcome to my blog.

end

# sed ‘1,3a drink tea’ ab #之一行到第三行后增加字符串”drink tea”

Hello!

drink tea

ruby is me,welcome to my blog.

drink tea

end

drink tea

# sed ‘1a drink tea\nor coffee’ ab #之一行后增加多行,使用換行符\n

Hello!

drink tea

or coffee

ruby is me,welcome to my blog.

end

  代替一行或多行

# sed ‘1c Hi’ ab #之一行代替為Hi

Hi

ruby is me,welcome to my blog.

end

# sed ‘1,2c Hi’ ab#之一行到第二行代替為Hi

Hi

end

  替換一行中的某部分

  格式:sed ‘s/要替換的字符串/新的字符串/g’ (要替換的字符串可以用正則表達(dá)式)

# sed -n ‘/ruby/p’ ab | sed ‘s/ruby/bird/g’ #替換ruby為bird

  # sed -n ‘/ruby/p’ ab | sed ‘s/ruby//g’#刪除ruby

插入

# sed -i ‘$a bye’ ab#在文件ab中最后一行直接輸入”bye”

# cat ab

Hello!

ruby is me,welcome to my blog.

end

bye

sed 命令查找與替換:

(1)刪除第2,3行:sed ‘2,3d’ test.txt > new.txt

(2)替換:

替換所有:sed ‘s/abc/ABC/’ test.txt >new.txt

查找: sed -n “/abc/p” test.txt

匹配字符串中的一部分: echo abc123 | sed ‘s/\(*\).*/\1/’

echo “ab001_ac” | sed ‘s/\(.*\)\_\(.*\)/\1,\2/’ \1表示之一個(gè)括號匹配的字符

echo “ABC01” | sed “s/*\(*\)/\1/”\1匹配后面的數(shù)字部分

echo “ab001_AC88” | sed ‘s/*\(*$\)/\1/’

echo “a001_aaST88” | sed “s/\(.*\)\(\)\(*$\)/\2/”

sed “s/^/\”&/” 32.txt 行首添加雙引號

sed “s/$/\”&/” 33.txt 行尾添加雙引號

sed “s/*$//” 35.txt 替換行尾空格

只顯示指定行范圍的文件內(nèi)容,例如:

# 只查看文件的第100行到第200行

sed -n ‘100,200p’ mysql_slow_query.log

sed -n $n”p” 22.txt 顯示某一行 n=2

sed大小寫轉(zhuǎn)換?

如何先查找,再追加所查找的行到一個(gè)新的文件:

(3)查找Tab:

sed “s/\{2,\}/\|/g”查找Tab,查找多空格,單獨(dú)一個(gè)空格的除外

awk ‘/3\t/’ 34.txt 查找\t

sed -n ‘/3>/p’ 34.txt 查找空格

sed “/\\t/p” 34.txt 查找tab

echo “\tabc\t23” | sed ‘s/>/-/’ 替換tab

sed -n ‘/>*/p’ 34.txt 查找tab

如何只替換第2個(gè)\t?

(4)

行末空格

sed ‘s/*$//g’

(5)替找空格:

echo “abc 23” | sed ‘s/\{2,\}/ /’ 把多個(gè)空格替換成一個(gè)空格

(3)

如果你想在每行的80個(gè)字符后加一個(gè)冒號,你可寫:

sed ‘s/./&:/80’ new

你也可以以蠻力解決,如下:

sed ‘s/^……………………………………………………………………../&:/’ new

(4)找一個(gè)sed命令在文件每一行加一個(gè)變量的例子:

sed ‘s/.*/&-/’ new.txt

用&作為匹配的串

有時(shí)你想查找一個(gè)模式,然后加上幾個(gè)字符,比如在匹配的串前后加上括號。如果你是找一個(gè)確定的字符串,還是比較簡單的,如下即可:

sed ‘s/abc/(abc)/’ new

如果你不是非常清楚你將找到的是串是什么,那你應(yīng)該如果來利用你找到的串做某種替換呢?

答案就是你需要一個(gè)特定的字符”&”,它即指代匹配的模式

sed ‘s/*/(&)/’ new

你可以在替換時(shí)多次使用”&”,比如,你可以次每行開頭的數(shù)字復(fù)制一次,如下:

% echo “123 abc” | sed ‘s/*/& &/’

abc

讓我再修正一下這個(gè)例子,sed會(huì)以貪婪的方式匹配之一個(gè)串。對于’*’的之一個(gè)區(qū)配是之一個(gè)字符,因?yàn)檫@個(gè)正則是匹配0個(gè)或多個(gè)數(shù)字。所以如果輸入是”abc 123”,輸出也不會(huì)改變(當(dāng)然,除了有一個(gè)空格在字母之前)。一個(gè)能保證能匹配一個(gè)數(shù)字的更好的復(fù)制數(shù)字的方法是:

% echo “123 abc” | sed ‘s/*/& &/’

abc

(5)sed 中如何使用變量(變量使用單引號包起來):

echo “abc” | sed ‘s/ab/’$v’/’

如何在文件的每一行的最前面加一個(gè)字符串和空格!

sed ‘s/^/ttt /g’ test

如何在文件的每一行的最前面加一個(gè)字符串和空格!

sed ‘s/^/ttt /g tese | sed ‘s/$/ sss\&/g’

如何在文件的每一行的最前面加一個(gè)字符串和空格!

sed ‘s/^/ttt /g tese | sed ‘s/$/ sss\&/g’

(7)匹配空行:

查找空行:sed -n “/^$/p” 20.txt

刪除空行:sed “/^$/d” 21.txt

n 不打印; sed不寫編輯行到標(biāo)準(zhǔn)輸出,缺省為打印所有行(編輯和未編輯),p命令可以用來打印編輯行

c 下一命令是編輯命令,使用多項(xiàng)編輯時(shí)加入此選項(xiàng)

f 如果正在調(diào)用sed腳本文件,使用此選項(xiàng),此選項(xiàng)通知sed一個(gè)腳本文件支持所用的sed命令,如

sed -f myscript.sed input_file 這里myscript.sed即為支持sed命令的文件

(21) 只顯示指定行范圍的文件內(nèi)容,例如:

# 只查看文件的第100行到第200行

sed -n ‘100,200p’ mysql_slow_query.log

(22)退出狀態(tài)

sed不向grep一樣,不管是否找到指定的模式,它的退出狀態(tài)都是0。只有當(dāng)命令存在語法錯(cuò)誤時(shí),sed的退出狀態(tài)才不是0。

(23)y命令

該命令與UNIX/Linux中的tr命令類似,字符按照一對一的方式從左到右進(jìn)行轉(zhuǎn)換。例如,y/abc/ABC/將把所有小寫的a轉(zhuǎn)換成A,小寫的b轉(zhuǎn)換成B,小寫的c轉(zhuǎn)換成C。

sed ‘1,20y/hrwang12/HRWANG^$/’ datafile

#將1到20行內(nèi),所有的小寫hrwang轉(zhuǎn)換成大寫,將1轉(zhuǎn)換成^,將2轉(zhuǎn)換成$。

#正則表達(dá)式元字符對y命令不起作用。與s命令的分隔符一樣,斜線可以被替換成其它的字符。

(24)% echo “123 abc” | sed ‘s/*/& &/’

abc

字符串”abc”沒有改變,因?yàn)樗鼪]有匹配正則表達(dá)式,如果你想在輸出中刪除”abc”,你必須擴(kuò)展正則表達(dá)式來匹配行的其它的部分,并顯式地用”(”,”)”和”\1”來指名,這就是下節(jié)的內(nèi)容了。

用\1來指明匹配的部分

我已經(jīng)在正則表達(dá)式那一章中介紹了”(” ”)”和”\1”的用法?,F(xiàn)在復(fù)習(xí)一下,被轉(zhuǎn)義的括號(即,有反斜杠在前面的括號)來記錄正則表達(dá)的某一部分?!盶1”是被記錄的之一個(gè)模式,”\2”是第二個(gè)被記錄的模式。Sed可以記錄9個(gè)模式。

如果你想保存每行的之一個(gè)單詞,并刪除行的其它部分,你可以用下面的命令:

sed ‘s/\(\*).*/\1/’

我應(yīng)該再詳細(xì)地解釋一下。正則表達(dá)式是以貪婪的方式匹配。”*”匹配0個(gè)或多個(gè)小寫字母,它會(huì)盡量匹配更多的小寫字母?!?*”會(huì)在之一個(gè)匹配后匹配0個(gè)或多個(gè)字符。因?yàn)橹粋€(gè)模式已經(jīng)匹配了所有的小寫字母,第二個(gè)模式會(huì)匹配剩下的字符,所以你使用命令:

echo abcd123 | sed ‘s/\(*\).*/\1/’

會(huì)輸出”abcd”,而刪除后面的數(shù)字。

如果你想調(diào)換兩個(gè)單詞的位置,你可記錄兩個(gè)模式,并改變它們的次序。

sed ‘s/\(*\) \(*\)/\2 \1/’

注意兩個(gè)模式中間是有空格的。這個(gè)可保證找到兩個(gè)單詞。但是*這種模式會(huì)匹配0個(gè)字母,如果你想至少匹配一個(gè)字母,你可以用下面的命令:

sed ‘s/\(*\) \(*\)/\2 \1/’

“\1”并不需要一定出現(xiàn)在替換串中(右部),它你也可以在查找的模式中(左部)。如果你想刪除重復(fù)的單詞,你可以用:

sed ‘s/\(*\) \1/\1/’

sed的linux的介紹就聊到這里吧,感謝你花時(shí)間閱讀本站內(nèi)容,更多關(guān)于sed的linux,命令行編輯器——sed在linux系統(tǒng)中的應(yīng)用,linux shell sed命令用法的信息別忘了在本站進(jìn)行查找喔。

創(chuàng)新互聯(lián)(cdcxhl.com)提供穩(wěn)定的云服務(wù)器,香港云服務(wù)器,BGP云服務(wù)器,雙線云服務(wù)器,高防云服務(wù)器,成都云服務(wù)器,服務(wù)器托管。精選鉅惠,歡迎咨詢:028-86922220。


文章名稱:命令行編輯器——sed在linux系統(tǒng)中的應(yīng)用(sed的linux)
本文鏈接:http://www.5511xx.com/article/dhhheio.html