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

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

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
學(xué)習(xí)Linux必備:30個(gè)常用sed指令(linux常用sed指令)

Linux作為一款開源操作系統(tǒng),越來越受到人們的歡迎。而作為Linux的核心要素之一的命令行,sed命令在其中的重要程度也不容小覷。在本文中,我們將為大家介紹30個(gè)常用的sed指令,以幫助大家更加輕松地學(xué)習(xí)和使用Linux。

站在用戶的角度思考問題,與客戶深入溝通,找到益陽網(wǎng)站設(shè)計(jì)與益陽網(wǎng)站推廣的解決方案,憑借多年的經(jīng)驗(yàn),讓設(shè)計(jì)與互聯(lián)網(wǎng)技術(shù)結(jié)合,創(chuàng)造個(gè)性化、用戶體驗(yàn)好的作品,建站類型包括:網(wǎng)站設(shè)計(jì)制作、成都網(wǎng)站設(shè)計(jì)、企業(yè)官網(wǎng)、英文網(wǎng)站、手機(jī)端網(wǎng)站、網(wǎng)站推廣、域名注冊、網(wǎng)頁空間、企業(yè)郵箱。業(yè)務(wù)覆蓋益陽地區(qū)。

一、sed是什么?

sed是“stream editor”的縮寫,用于在純文本文件中進(jìn)行替換、刪除、插入等操作。它可以在命令行中使用,也可以在腳本中被調(diào)用。sed的一大優(yōu)勢就是它只作用于所選定的文本行。

二、基本語法

sed的基本語法格式如下:

“`

sed [options] ‘command’ [file]

“`

其中,options和file是可選參數(shù),command是必選參數(shù)。command可以是一系列對文本的操作命令,如替換、刪除、插入等。

三、30個(gè)常用的sed指令

1. 替換字符串

替換字符串是sed的一個(gè)基本操作,它可以在指定的文本行中將一部分字符串替換成另一部分字符串。比如:

“`

$ sed ‘s/old/new/g’ file.txt

“`

以上命令表示將文件file.txt中的所有old替換成new,g表示一行中出現(xiàn)多次需要替換的字符串時(shí)都進(jìn)行替換。

2. 替換指定行

如果要只在文件的某些行中進(jìn)行替換,則可以使用標(biāo)號來限定行號的范圍,比如:

“`

$ sed ‘2s/old/new/g’ file.txt

“`

以上命令表示將文件file.txt中的第二行中的old替換成new。

3. 只替換匹配的字符串

如果希望只替換滿足某些條件的字符串,則可使用正則表達(dá)式來過濾匹配的文本。比如:

“`

$ sed ‘/^To/s/old/new/g’ file.txt

“`

以上命令表示只將以To開頭的行中的old替換成new。

4. 在行末添加文字

使用sed命令可以在行末添加文字。比如:

“`

$ sed ‘s/$/new/’ file.txt

“`

以上命令表示在文件file.txt中的每行行末添加new。

5. 刪除指定行

若要?jiǎng)h除文件中的指定行,可以使用d命令。比如:

“`

$ sed ‘2d’ file.txt

“`

以上命令表示刪除文件file.txt中的第二行。

6. 刪除特定字符串

若要?jiǎng)h除指定文本行中的字符串,可以使用s命令(替換命令)。比如:

“`

$ sed ‘s/old//g’ file.txt

“`

以上命令表示刪除文件file.txt中的所有old字符串。

7. 替換逗號為|

用sed命令也可以進(jìn)行逗號和豎線的轉(zhuǎn)換。比如:

“`

$ sed ‘s/,/|/g’ file.csv > newfile.csv

“`

以上命令表示將文件file.csv中的逗號替換成豎線,并將結(jié)果寫入newfile.csv中。

8. 在特定行之后添加新行

在特定行的下面添加新行是一個(gè)常見的需求。使用sed命令,只需將行號指定到后面并添加文本即可,比如:

“`

$ sed ‘2a\add a new line’ file.txt

“`

以上命令表示在文件file.txt的第二行下添加一行“add a new line”。

9. 添加注釋

如果需要在文件的某些位置添加注釋,只需使用#號即可。比如:

“`

$ sed ‘2a\# add a comment’ file.txt

“`

以上命令表示在文件file.txt的第二行下添加一行注釋“# add a comment”。

10. 刪除多余的空白行

批量清除空白行是使用sed命令的常見任務(wù)之一,例如:

“`

$ sed ‘/^$/d’ file.txt

“`

以上命令表示刪除文件file.txt中的所有空白行。

11. 行首插入文字

插入特定文本到行首也是sed命令可以完成的任務(wù)之一,例如:

“`

$ sed ‘s/^/add text to the begining: /’ file.txt

“`

以上命令表示在文件file.txt中的每行行首添加“add text to the begining:”。

12. 將指定范圍內(nèi)的行合并為一行

將多行文本合并為一行也是一種相當(dāng)實(shí)用的任務(wù)。sed命令可以通過使用N命令來實(shí)現(xiàn),例如:

“`

$ sed -n ‘1,3H; 4,$ { x; s/\n/ /g; p}’ file.txt

“`

以上命令表示將1至3行的內(nèi)容合并到一個(gè)緩沖區(qū)后,在第4行及之后的行中,將所有換行符替換成空格,并將結(jié)果輸出。

13. 對行進(jìn)行編號

在對Linux命令行進(jìn)行某些操作時(shí),經(jīng)常需要對行進(jìn)行編號??梢允褂靡韵旅睿?/p>

“`

$ sed = file.txt | sed ‘N; s/\n/\t/’

“`

以上命令表示對文件file.txt進(jìn)行行號編號,并在行號與行內(nèi)容之間加上一個(gè)制表符(/t)。

14. 抽取指定行

抽取文件中的特定行可使用如下命令:

“`

$ sed -n ‘1p’ file.txt

“`

以上命令表示抽取文件file.txt中的之一行。

15. 批量添加行號

如果需要批量添加行號,則可以使用如下命令:

“`

$ sed = file.txt | sed ‘N;s/\n/\t/;’

“`

以上命令表示將文件file.txt的文本行編號并用制表符分隔行號和行內(nèi)容。

16. 刪除指定范圍內(nèi)的所有行

如果需要?jiǎng)h除文件中的指定行,可以使用如下命令:

“`

$ sed ‘1, 5d’ file.txt

“`

以上命令表示刪除文件file.txt中的第1至5行。

17. 刪除指定匹配的行

如果需要?jiǎng)h除指定文本中的某些行,可以使用如下命令:

“`

$ sed ‘/text/d’ file.txt

“`

以上命令表示刪除文件file.txt中包含文本“text”的所有行。

18. 批量替換字符串

批量替換字符串可以使用如下命令:

“`

$ sed ‘s/text1/text2/g’ file.txt > newfile.txt

“`

以上命令表示將文件file.txt中的所有text1替換成text2并將結(jié)果寫入newfile.txt。

19. 批量插入空白行

與批量刪除空白行相比,批量插入空白行也是一個(gè)常見需求,可以使用如下命令:

“`

$ sed G file.txt

“`

以上命令表示在文本file.txt的每一行之后添加一行空行。

20. 批量添加特定內(nèi)容

在文件中批量添加特定內(nèi)容,可以使用如下命令:

“`

$ sed ‘1i\ add a new line at the beginning’ file.txt

“`

以上命令表示在文件file.txt的之一行之前添加一行文本“add a new line at the beginning”。

21. 刪除字符串末尾的空格

刪除字符串末尾的空格也是通過sed命令實(shí)現(xiàn)的,比如:

“`

$ sed ‘s/[ \t]*$//’ file.txt

“`

以上命令表示刪除文件file.txt中每一行末尾的空格和制表符。

22. 刪除雙引號

刪除文件中的雙引號也是常見的需求之一,可以使用如下命令:

“`

$ sed ‘s/”//g’ file.txt

“`

以上命令表示刪除文件file.txt中出現(xiàn)的所有雙引號。

23. 刪除行尾的逗號

刪除行尾逗號也可以使用sed命令實(shí)現(xiàn),比如:

“`

$ sed ‘s/,$//’ file.txt

“`

以上命令表示刪除文件file.txt中每行末尾的逗號。

24. 合并行

合并文本文件中的兩行可以使用如下方式:

“`

$ sed ‘N;s/\n/ /’ file.txt

“`

以上命令表示將文件file.txt中每兩行合并為一行。

25. 快速編輯文件

sed命令可以使用戶快速編輯大型文本文件,例如:

“`

$ sed -i ‘s/text1/text2/g’ file.txt

“`

以上命令表示將文件file.txt中所有的text1替換成text2。使用-i選項(xiàng)可使sed命令直接編輯源文件,不需使用額外的輸出文件。

26. 批量刪除每行行首的空格

批量刪除每行行首的空格也是常見的需求之一,可以使用如下命令:

“`

$ sed ‘s/^[ \t]*//’ file.txt

“`

以上命令表示刪除文件file.txt中每行開頭多余的空格和制表符。

27. 使用正則表達(dá)式查找和替換

使用sed命令可以使用正則表達(dá)式進(jìn)行查找和替換,例如:

“`

$ sed ‘s/[0-9]*//g’ file.txt

“`

以上命令表示刪除文件file.txt中的所有數(shù)字。

28. 刪除指定范圍內(nèi)的行

如果需要?jiǎng)h除特定范圍內(nèi)的行,可以使用如下命令:

“`

$ sed ‘2,4d’ file.txt

“`

以上命令表示刪除文件file.txt中的第2至4行。

29. 批量添加特定文本

在對批量文本進(jìn)行操作時(shí),添加特定文本可以使用如下命令:

“`

$ sed ‘s/^/new text: /’ file.txt

“`

以上命令表示在文件file.txt中的每行行首添加“new text: ”。

30. 替換指定范圍內(nèi)的行

如果需要在指定的范圍內(nèi)替換文本,則可以使用如下命令:

“`

$ sed ‘2,$ s/text1/text2/g’ file.txt

“`

以上命令表示在文件file.txt中的第2行及之后的所有行中將文本text1替換成text2。

綜上,sed指令是Linux命令行中不可或缺的一部分。本文介紹了30個(gè)較為實(shí)用的sed指令,希望讀者能夠在日常的工作中靈活運(yùn)用sed命令,提高自己的工作效率。

相關(guān)問題拓展閱讀:

  • linux shell sed命令用法
  • linux指令 sed指令怎么選擇列

linux shell sed命令用法

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

是這個(gè)語法…

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/”

$ 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)簧稀5绻由?-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/’

linux指令 sed指令怎么選擇列

首先我這邊先建一個(gè)字母大小轉(zhuǎn)換的腳本test2.sh,內(nèi)容如下:

先介紹些sed -n的應(yīng)用:

sed命令中p能實(shí)現(xiàn)打印匹配行的功能。我們可以實(shí)際看下sed命令帶-n和不帶-n情況下有什么不同。

sed -n “1p” test2.sh:帶-n選項(xiàng)的話,只打印test2.sh腳本之一行匹配行。

sed “1p” test2.sh:不帶-n的話,不僅打印之一行匹配行,還打印輸出test2.sh腳本的全部內(nèi)容。

sed -n還可以打印文件的范圍,比如打印test2.sh腳本的前兩行,我們就可以執(zhí)行以下命令:sed -n “1,2p” test2.sh,就可以直接打印前兩行。

sed命令可以打印匹配模式行,比如打印test2.sh腳本匹配tr的行,就可以執(zhí)行以下命令:

sed -n /tr/p test2.sh。

remark:如果不帶-n的話,除了打印匹配行外,還會(huì)打印腳本的全部內(nèi)容。

sed -e的應(yīng)用。只有當(dāng)sed命令傳遞多個(gè)編輯命令式,才會(huì)使用到-e。比如:我想打印/tr/匹配行,并且打印匹配行所在的行號,此時(shí)存在多個(gè)sed參數(shù),就要用型亂源到-e了。

sed -n -e /tr/p -e /tr/= test2.sh

每個(gè)參數(shù)前都要帶上-e:

sed a\追加命令,命令格式為:sed ’指定地址a\追加內(nèi)容‘ 目標(biāo)文件

這個(gè)追加內(nèi)容在匹配行的下一行,只會(huì)輸出到標(biāo)準(zhǔn)輸出,原文件內(nèi)容是不變的,例如在test2.sh腳本的/tr/所在的匹配行的下一行添加“#hello”內(nèi)容,可需要執(zhí)行:

sed ‘/tr/a\#hello’ test2.sh

一定不要忘記單引號.

還有一個(gè)sed i\的追加命令,命令格式為:sed ’指定地址i\追加內(nèi)容‘ 目標(biāo)文件,跟a\不同,i\追加是在指定位置的上一行追加命令

sed命令中還有一些特殊的匹配,比如元字符匹配,此時(shí)需要用

轉(zhuǎn)義符

“\”屏蔽其特殊意義。

比如:sed -n ‘/\=/p’test2.sh,則打印輸出tr一行。

$在

正則表達(dá)式

中表示尾行,執(zhí)行sed -n ‘$p’ test2.sh則打印腳本尾行。

!表示取反,可以看以下兩個(gè)例子

sed中可以使用關(guān)鍵字來匹配行,打印我們所需要的陪敬內(nèi)容,比如,我希望打印test2.sh第2,3行,可以執(zhí)行:sed -n “2,” test2.sh,也可以執(zhí)行sed -n “/tr/,/exit/p” test2.sh

sed c\的應(yīng)用,命令格式為:sed ’指定地址c\替換內(nèi)容‘ 目標(biāo)文件。比如,#hello,替換test2.sh腳本的tr這行,可以執(zhí)行命令:sed ‘/tr/c\#hello’ test2.sh

sed刪除d應(yīng)用:比如我想刪除test2.sh的第2行,可以執(zhí)行以下命令:sed “2d” test2.sh或者sed /tr/d test2.sh

sed替換s應(yīng)用:格式 sed s/被替換的字符/替換字符/

比如,我想把test2.sh中tr替換成大寫的tr,則可以執(zhí)行以下命令:sed ‘s/tr/TR/’test2.sh,則把腳本中的tr替換成TR,完后輸出全部內(nèi)容。

如果僅想打印替換所在行,則需要卜態(tài)試用使用-n和-p:sed -n ‘s/tr/TR/p’ test2.sh:把腳本中的tr替換成TR,然后打印tr所在的行.

如果腳本中存在好幾個(gè)tr,并且每一行也存在多個(gè)tr,如果執(zhí)行以上命令的話,只會(huì)更改每一行的之一個(gè)出現(xiàn)的tr,如果要全部把tr轉(zhuǎn)后為TR,則需要添加G參數(shù):

sed -n ’S/tr/TR/pg’test2.sh。

w參數(shù)是定向輸入?yún)?shù),比如要把上述的變更定向輸出到test1.txt中,則需要執(zhí)行:

sed -n ’s/tr/TR/pgw test1.txt’ test2.sh。

也可以直接把選定的匹配內(nèi)容寫到另一個(gè)文本中,比如想把test2.sh中tr這一樣寫到test2.txt中,執(zhí)行:sed -n ’/tr/w test2.txt‘ test2.sh

sed 編返純輯器是 Linux 系統(tǒng)管理員的工具包中最有用的資產(chǎn)之一

Linux 操作系統(tǒng)更大的一個(gè)好處是它帶有各種各樣的實(shí)用工具。存在如此之多不同的實(shí)用工具,幾乎不可能知道并了解所有這些工具??梢院喕P(guān)鍵情況下操作的一個(gè)實(shí)用 工具是 sed。它是任何管理員的工具包中最強(qiáng)大的工具之一,并且可以證明它自己在關(guān)鍵情況下非常有價(jià)值。

關(guān)于linux 常用sed指令的介紹到此就結(jié)束了,不知道你從中找到你需要的信息了嗎 ?如果你還想了解更多這方面的信息,記得收藏關(guān)注本站。

香港服務(wù)器選創(chuàng)新互聯(lián),2H2G首月10元開通。
創(chuàng)新互聯(lián)(www.cdcxhl.com)互聯(lián)網(wǎng)服務(wù)提供商,擁有超過10年的服務(wù)器租用、服務(wù)器托管、云服務(wù)器、虛擬主機(jī)、網(wǎng)站系統(tǒng)開發(fā)經(jīng)驗(yàn)。專業(yè)提供云主機(jī)、虛擬主機(jī)、域名注冊、VPS主機(jī)、云服務(wù)器、香港云服務(wù)器、免備案服務(wù)器等。


網(wǎng)頁名稱:學(xué)習(xí)Linux必備:30個(gè)常用sed指令(linux常用sed指令)
文章URL:http://www.dlmjj.cn/article/dpopcjp.html