Linux中的sed是什么意思呢,如何使用呢 linux命令sed與awk是干什么用的,怎么用?
sed [-nefri] ‘command’ 輸入文本/文件
常用選項(xiàng):
-n∶取消默認(rèn)的輸出,使用安靜(silent)模式。在一般 sed 的用法中,所有來自 STDIN的資料一般都會(huì)被列出到屏幕上。但如果加上 -n 參數(shù)后,則只有經(jīng)過sed 特殊處理的那一行(或者動(dòng)作)才會(huì)被列出來
-e∶進(jìn)行多項(xiàng)編輯,即對(duì)輸入行應(yīng)用多條sed命令時(shí)使用. 直接在指令列模式上進(jìn)行 sed 的動(dòng)作編輯
-f∶指定sed腳本的文件名. 直接將 sed 的動(dòng)作寫在一個(gè)檔案內(nèi), -f filename 則可以執(zhí)行 filename 內(nèi)的sed 動(dòng)作
-r∶sed 的動(dòng)作支援的是延伸型正則表達(dá)式的語法。(預(yù)設(shè)是基礎(chǔ)正則表達(dá)式語法)
-i∶直接修改讀取的文件內(nèi)容,而不是由屏幕輸出
常用命令:
a ∶ 新增, a 的后面可以接字串,而這些字串會(huì)在新的一行出現(xiàn)(目前的下一行)
c ∶ 取代, c 的后面可以接字串,這些字串可以取代 n1,n2 之間的行
d ∶ 刪除,因?yàn)槭莿h除,所以 d 后面通常不接任何內(nèi)容
i ∶ 插入, i 的后面可以接字串,而這些字串會(huì)在新的一行出現(xiàn)(目前的上一行)
p∶ 列印,亦即將某個(gè)選擇的資料印出。通常 p 會(huì)與參數(shù) sed -n 一起用
s∶ 取代,可以直接進(jìn)行替換的工作。通常這個(gè) s 的動(dòng)作可以搭配正則表達(dá)式。例如 1,20s/old/new/g
定址
定址用于決定對(duì)哪些行進(jìn)行編輯。地址的形式可以是數(shù)字、正則表達(dá)式、或二者的結(jié)合。如果沒有指定地址,sed將處理輸入文件的所有行。
地址是一個(gè)數(shù)字,則表示行號(hào);是“$"符號(hào),則表示最后一行。例如:
sed -n '3p' datafile
只打印第三行
只顯示指定行范圍的文件內(nèi)容,例如:
# 只查看文件的第100行到第200行
sed -n '100,200p' mysql_slow_query.log
地址是逗號(hào)分隔的,那么需要處理的地址是這兩行之間的范圍(包括這兩行在內(nèi))。范圍可以用數(shù)字、正則表達(dá)式、或二者的組合表示。例如:
sed '2,5d' datafile
#刪除第二到第五行
sed '/My/,/You/d' datafile
#刪除包含"My"的行到包含"You"的行之間的行
sed '/My/,10d' datafile
#刪除包含"My"的行到第十行的內(nèi)容
舉例:(假設(shè)我們有一文件名為ab)
刪除某行
[root@localhost ruby] # sed '1d' ab #刪除第一行
[root@localhost ruby] # sed '$d' ab #刪除最后一行
[root@localhost ruby] # sed '1,2d' ab #刪除第一行到第二行
[root@localhost ruby] # sed '2,$d' ab #刪除第二行到最后一行
顯示某行
. [root@localhost ruby] # sed -n '1p' ab #顯示第一行
[root@localhost ruby] # sed -n '$p' ab #顯示最后一行
[root@localhost ruby] # sed -n '1,2p' ab #顯示第一行到第二行
[root@localhost ruby] # sed -n '2,$p' ab #顯示第二行到最后一行
使用模式進(jìn)行查詢
[root@localhost ruby] # sed -n '/ruby/p' ab #查詢包括關(guān)鍵字ruby所在所有行
[root@localhost ruby] # sed -n '/\$/p' ab #查詢包括關(guān)鍵字$所在所有行,使用反斜線\屏蔽特殊含義
增加一行或多行字符串
[root@localhost ruby]# cat ab
Hello!
ruby is me,welcome to my blog.
end
[root@localhost ruby] # sed '1a drink tea' ab #第一行后增加字符串"drink tea"
Hello!
drink tea
ruby is me,welcome to my blog.
end
[root@localhost ruby] # sed '1,3a drink tea' ab #第一行到第三行后增加字符串"drink tea"
Hello!
drink tea
ruby is me,welcome to my blog.
drink tea
end
drink tea
[root@localhost ruby] # sed '1a drink tea\nor coffee' ab #第一行后增加多行,使用換行符\n
Hello!
drink tea
or coffee
ruby is me,welcome to my blog.
end
代替一行或多行
[root@localhost ruby] # sed '1c Hi' ab #第一行代替為Hi
Hi
ruby is me,welcome to my blog.
end
[root@localhost ruby] # sed '1,2c Hi' ab #第一行到第二行代替為Hi
Hi
end
替換一行中的某部分
格式:sed 's/要替換的字符串/新的字符串/g' (要替換的字符串可以用正則表達(dá)式)
[root@localhost ruby] # sed -n '/ruby/p' ab | sed 's/ruby/bird/g' #替換ruby為bird
[root@localhost ruby] # sed -n '/ruby/p' ab | sed 's/ruby//g' #刪除ruby
插入
[root@localhost ruby] # sed -i '$a bye' ab #在文件ab中最后一行直接輸入"bye"
[root@localhost ruby]# cat ab
Hello!
ruby is me,welcome to my blog.
end
bye
替換:
-e是編輯命令,用于sed執(zhí)行多個(gè)編輯任務(wù)的情況下。在下一行開始編輯前,所有的編輯動(dòng)作將應(yīng)用到模式緩沖區(qū)中的行上。
sed -e '1,10d' -e 's/My/Your/g' datafile
#選項(xiàng)-e用于進(jìn)行多重編輯。第一重編輯刪除第1-3行。第二重編輯將出現(xiàn)的所有My替換為Your。因?yàn)槭侵鹦羞M(jìn)行這兩項(xiàng)編輯(即這兩個(gè)命令都在模式空間的當(dāng)前行上執(zhí)行),所以編輯命令的順序會(huì)影響結(jié)果。
# 替換兩個(gè)或多個(gè)空格為一個(gè)空格
sed 's/[ ][ ]*/ /g' file_name
# 替換兩個(gè)或多個(gè)空格為分隔符:
sed 's/[ ][ ]*/:/g' file_name
# 如果空格與tab共存時(shí)用下面的命令進(jìn)行替換
# 替換成空格
sed 's/[[:space:]][[:space:]]*/ /g' filename
# 替換成分隔符:
sed 's/[[:space:]][[:space:]]*/:/g' filename
==============
sed命令的調(diào)用:
在命令行鍵入命令;將sed命令插入腳本文件,然后調(diào)用sed;將sed命令插入腳本文件,并使sed腳本可執(zhí)行
sed [option] sed命令 輸入文件 在命令行使用sed命令,實(shí)際命令要加單引號(hào)
sed [option] -f sed腳本文件 輸入文件 使用sed腳本文件
sed腳本文件 [option] 輸入文件 第一行具有sed命令解釋器的sed腳本文件
option如下:
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命令的文件
使用重定向文件即可保存sed的輸出
使用sed在文本中定位文本的方式:
x x為一行號(hào),比如1
x,y 表示行號(hào)范圍從x到y(tǒng),如2,5表示從第2行到第5行
/pattern/ 查詢包含模式的行,如/disk/或/[a-z]/
/pattern/pattern/ 查詢包含兩個(gè)模式的行,如/disk/disks/
/pattern/,x 在給定行號(hào)上查詢包含模式的行,如/disk/,3
x,/pattern/ 通過行號(hào)和模式查詢匹配行,如 3,/disk/
x,y! 查詢不包含指定行號(hào)x和y的行
基本sed編輯命令:
p 打印匹配行 c/ 用新文本替換定位文本
= 顯示文件行號(hào) s 使用替換模式替換相應(yīng)模式
a/ 在定位行號(hào)后附加新文本信息 r 從另一個(gè)文本中讀文本
i/ 在定位行號(hào)后插入新文本信息 w 寫文本到一個(gè)文件
d 刪除定位行 q 第一個(gè)模式匹配完成后退出或立即退出
l 顯示與八進(jìn)制ASCII代碼等價(jià)的控制字符 y 傳送字符
n 從另一個(gè)文本中讀文本下一行,并附加在下一行 {} 在定位行執(zhí)行的命令組
g 將模式2粘貼到/pattern n/
基本sed編程舉例:
使用p(rint)顯示行: sed -n '2p' temp.txt 只顯示第2行,使用選項(xiàng)n
打印范圍: sed -n '1,3p' temp.txt 打印第1行到第3行
打印模式: sed -n '/movie/'p temp.txt 打印含movie的行
使用模式和行號(hào)查詢: sed -n '3,/movie/'p temp.txt 只在第3行查找movie并打印
顯示整個(gè)文件: sed -n '1,$'p temp.txt $為最后一行
任意字符: sed -n '/.*ing/'p temp.txt 注意是.*ing,而不是*ing
打印行號(hào): sed -e '/music/=' temp.txt
附加文本:(創(chuàng)建sed腳本文件)chmod u+x script.sed,運(yùn)行時(shí)./script.sed temp.txt
#!/bin/sed -f
/name1/ a/ #a/表示此處換行添加文本
HERE ADD NEW LINE. #添加的文本內(nèi)容
插入文本: /name1/ a/ 改成 4 i/ 4表示行號(hào),i插入
修改文本: /name1/ a/ 改成 /name1/ c/ 將修改整行,c修改
刪除文本: sed '1d' temp.txt 或者 sed '1,4d' temp.txt
替換文本: sed 's/source/OKSTR/' temp.txt 將source替換成OKSTR
sed 's//$//g' temp.txt 將文本中所有的$符號(hào)全部刪除
sed 's/source/OKSTR/w temp2.txt' temp.txt 將替換后的記錄寫入文件temp2.txt
替換修改字符串: sed 's/source/"ADD BEFORE" &/p' temp.txt
結(jié)果將在source字符串前面加上"ADD BEFORE",這里的&表示找到的source字符并保存
sed結(jié)果寫入到文件: sed '1,2 w temp2.txt' temp.txt
sed '/name/ w temp2.txt' temp.txt
從文件中讀文本: sed '/name/r temp2.txt' temp.txt
在每列最后加文本: sed 's/[0-9]*/& Pass/g' temp.txt
從shell向sed傳值: echo $NAME | sed "s/go/$REP/g" 注意需要使用雙引號(hào)
快速一行命令:
's//.$//g' 刪除以句點(diǎn)結(jié)尾行
'-e /abcd/d' 刪除包含abcd的行
's/[][][]*/[]/g' 刪除一個(gè)以上空格,用一個(gè)空格代替
's/^[][]*//g' 刪除行首空格
's//.[][]*/[]/g' 刪除句號(hào)后跟兩個(gè)或更多的空格,用一個(gè)空格代替
'/^$/d' 刪除空行
's/^.//g' 刪除第一個(gè)字符,區(qū)別 's//.//g'刪除所有的句點(diǎn)
's/COL/(.../)//g' 刪除緊跟COL的后三個(gè)字母
's/^////g' 刪除路徑中第一個(gè)/
///////////////////////////////////////////////////////////////////////
、使用句點(diǎn)匹配單字符 句點(diǎn)“.”可以匹配任意單字符。“.”可以匹配字符串頭,也可以是中間任意字符。假定正在過濾一個(gè)文本文件,對(duì)于一個(gè)有1 0個(gè)字符的腳本集,要求前4個(gè)字符之后為X C,匹配操作如下:. . . .X C. . . .
2、在行首以^匹配字符串或字符序列 ^只允許在一行的開始匹配字符或單詞。在行首第4個(gè)字符為1,匹配操作表示為:^ . . . 1
3、在行尾以$匹配字符串或字符 可以說$與^正相反,它在行尾匹配字符串或字符, $符號(hào)放在匹配單詞后。如果在行尾匹配單詞j e t 0 1,操作如下:j e t 0 1 $ 如果只返回包含一個(gè)字符的行,操作如下:^ . $
4、使用*匹配字符串中的單字符或其重復(fù)序列 使用此特殊字符匹配任意字符或字符串的重復(fù)多次表達(dá)式。
5、使用/屏蔽一個(gè)特殊字符的含義 有時(shí)需要查找一些字符或字符串,而它們包含了系統(tǒng)指定為特殊字符的一個(gè)字符。如果要在正則表達(dá)式中匹配以* . p a s結(jié)尾的所有文件,可做如下操作:/ * / . p a s
6、使用[]匹配一個(gè)范圍或集合 使用[ ]匹配特定字符串或字符串集,可以用逗號(hào)將括弧內(nèi)要匹配的不同字符串分開,但并不強(qiáng)制要求這樣做(一些系統(tǒng)提倡在復(fù)雜的表達(dá)式中使用逗號(hào)),這樣做可以增 加模式的可讀性。使用“ -”表示一個(gè)字符串范圍,表明字符串范圍從“ -”左邊字符開始,到“ -”右邊字符結(jié)束。假定要匹配任意一個(gè)數(shù)字,可以使用:[ 0 1 2 3 4 5 6 7 8 9 ] 要匹配任意字母,則使用:[ A - Z a - z ]表明從A - Z、a - z的字母范圍。
7、使用/{/}匹配模式結(jié)果出現(xiàn)的次數(shù) 使用*可匹配所有匹配結(jié)果任意次,但如果只要指定次數(shù),就應(yīng)使用/ { / },此模式有三種形式,即:
pattern/{n/} 匹配模式出現(xiàn)n次。
pattern/{n,/} 匹配模式出現(xiàn)最少n次。
pattern/{n,m} 匹配模式出現(xiàn)n到m次之間,n , m為0 - 2 5 5中任意整數(shù)。
匹配字母A出現(xiàn)兩次,并以B結(jié)尾,操作如下:A / { 2 / } B匹配值為A A B 匹配A至少4次,使用:A / { 4 , / } B
===============
替換單引號(hào)為空:
可以這樣寫:
sed 's/'"'"'//g'
sed 's/'\''//g'
Sed是一項(xiàng)Linux指令,全稱是Stream
EDitor,功能同awk類似,差別在于,sed簡(jiǎn)單,對(duì)列處理的功能要差一些,awk的功能復(fù)雜,對(duì)列處理的功能比較強(qiáng)大。Sed主要用于自動(dòng)編輯一個(gè)或者多個(gè)文件,多用于腳本中對(duì)文件的處理。
Sed命令可以對(duì)文件進(jìn)行增加、刪除、修改和查找操作,所以學(xué)好sed命令是寫自動(dòng)化腳本必須的基礎(chǔ)之一。
調(diào)用sed命令有兩種形式:
sed [options] 'command' file(s)
sed [options] -f scriptfile file(s)
sed命令主要選項(xiàng)
-e command,--expression=command允許多臺(tái)編輯。
-h,--help打印幫助,并顯示bug列表的地址。
-n,--quiet,--silent取消默認(rèn)輸出。
-f,--filer=script-file引導(dǎo)sed腳本文件名。
-V,--version打印版本和版權(quán)信息。
命令:
a\在當(dāng)前行后面加入一行文本。
b label分支到腳本中帶有標(biāo)記的地方,如果分支不存在則分支到腳本的末尾。
c\用新的文本改變本行的文本。
d 從模板塊位置刪除行。
D 刪除模板塊的第一行。
i\在當(dāng)前行上面插入文本。
h拷貝模板塊的內(nèi)容到內(nèi)存中的緩沖區(qū)。
H 追加模板塊的內(nèi)容到內(nèi)存中的緩沖區(qū)。
g 獲得內(nèi)存緩沖區(qū)的內(nèi)容,并替代當(dāng)前模板塊中的文本。
G 獲得內(nèi)存緩沖區(qū)的內(nèi)容,并追加到當(dāng)前模板塊文本的后面。
l 列表不能打印字符的清單。
n 讀取下一個(gè)輸入行,用下一個(gè)命令處理新的行而不是用第一個(gè)命令。
N 追加下一個(gè)輸入行到模板塊后面并在二者間嵌入一個(gè)新行,改變當(dāng)前行號(hào)碼。
p 打印模板塊的行。
P 打印模板塊的第一行。
q 退出Sed。
r file從file中讀行。
t labelif分支,從最后一行開始,條件一旦滿足或者T,t命令,將導(dǎo)致分支到帶有標(biāo)號(hào)的命令處,或者到腳本的末尾。
T label錯(cuò)誤分支,從最后一行開始,一旦發(fā)生錯(cuò)誤或者T,t命令,將導(dǎo)致分支到帶有標(biāo)號(hào)的命令處,或者到腳本的末尾。
w file寫并追加模板塊到file末尾。
W file寫并追加模板塊的第一行到file末尾。
! 表示后面的命令對(duì)所有沒有被選定的行發(fā)生作用。
s/re/string 用string替換正則表達(dá)式re。
= 打印當(dāng)前行號(hào)碼。
# 把注釋擴(kuò)展到下一個(gè)換行符以前。
sed命令詳解
原文鏈接:sed命令_Linux sed 命令用法詳解:功能強(qiáng)大的流式文本編輯器 http:\/\/man.linuxde.net\/sed 未經(jīng)作者同意,僅做學(xué)習(xí),不做商業(yè)使用,如作者表示異議我會(huì)立刻刪除。建議大家關(guān)注原文網(wǎng)站 sed 是一種流編輯器,它是文本處理中非常中的工具,能夠完美的配合正則表達(dá)式使用,功能不同凡響。
Linux 文本三劍客(2)sed命令的使用
Linux中的文本處理神器,sed命令(流編輯器)以其高效和簡(jiǎn)潔的特性脫穎而出。不同于傳統(tǒng)的編輯器,sed只需一次遍歷輸入文本即可完成操作,特別適合于過濾管道中的內(nèi)容。由貝爾實(shí)驗(yàn)室的李·E·麥克馬洪在1973年至1974年間開發(fā),sed已經(jīng)成為大多數(shù)操作系統(tǒng)中的必備工具,它繼承了ed和qed的腳本功能,并且是...
在LINUX中 如何用sed將整行替換成給定字符串?
在Linux系統(tǒng)中,sed命令是一種強(qiáng)大的流編輯器,常用于文本替換、插入、刪除等操作。如果需要將整個(gè)文件中的某一行替換為指定的字符串,可以使用sed的行號(hào)功能。例如,要將文件中第三行替換為"example",可以使用如下命令:sed -e '3s\/.*$\/example\/' filename 其中,"3"表示行號(hào),"s\/.*$\/example\/...
linux sed 替換
由於 $ 代表的是最后一行,而 a 的動(dòng)作是新增,因此該文件最后新增 # This is a test!sed 的 -i 選項(xiàng)可以直接修改文件內(nèi)容,這功能非常有幫助!舉例來說,如果你有一個(gè) 100 萬行的文件,你要在第 100 行加某些文字,此時(shí)使用 vim 可能會(huì)瘋掉!因?yàn)槲募罅耍∧窃蹀k?就利用 sed 啊!透過 ...
Linux中的sed是什么意思呢,簡(jiǎn)單解釋一下啊
Sed是一項(xiàng)Linux指令,全稱是Stream EDitor,功能同awk類似,差別在于,sed簡(jiǎn)單,對(duì)列處理的功能要差一些,awk的功能復(fù)雜,對(duì)列處理的功能比較強(qiáng)大。Sed主要用于自動(dòng)編輯一個(gè)或者多個(gè)文件,多用于腳本中對(duì)文件的處理。Sed命令可以對(duì)文件進(jìn)行增加、刪除、修改和查找操作,所以學(xué)好sed命令是寫自動(dòng)化腳本必須的基礎(chǔ)...
使用sed 命令進(jìn)行復(fù)制、剪切和粘貼 | Linux 中國(guó)
本文將向你展示如何利用 sed 命令進(jìn)行復(fù)制、剪切和粘貼操作,就像使用傳統(tǒng)剪貼板一樣。sed 是一個(gè)強(qiáng)大的流編輯器,雖然操作看似復(fù)雜,但理解其基本原理后,你會(huì)發(fā)現(xiàn)它極具靈活性。首先,了解一下sed 的基本用法,然后可以下載我們的備忘單,方便你在需要時(shí)參考。盡管sed、grep 和 awk 都是Unix\/Linux下...
shell常用命令之sed命令
sed命令是Linux中強(qiáng)大的文本處理工具,它主要用于在文件中替換、刪除或打印指定的文本。命令的基本格式為"sed -i 's\/舊字符串\/新字符串\/g' 文件名"。這里的-i參數(shù)表示修改文件內(nèi)容,g參數(shù)表示全局替換,若不使用g,則只替換每行首次出現(xiàn)的字符串。sed還提供了刪除指定行的功能,格式為"sed ‘開始...
Linux中使用sed命令替換字符串小結(jié)
最近寫了幾個(gè)小腳本用到了sed命令,學(xué)了一下,順便記下 sed替換的基本語法為:復(fù)制代碼代碼如下:sed 's\/原字符串\/替換字符串\/'單引號(hào)里面,s表示替換,三根斜線中間是替換的樣式,特殊字符需要使用反斜線”\\”進(jìn)行轉(zhuǎn)義,但是單引號(hào)”‘”是沒有辦法用反斜線”\\”轉(zhuǎn)義的,這時(shí)候只要把命令中的單引號(hào)改為...
linux系統(tǒng)三劍客之sed命令增刪改查文本內(nèi)容
trial",同時(shí)只打印替換成功的行。通過`ifconfig | sed '\/demo\/s\/bash\/csh\/'`,則可以使用sed從ifconfig輸出中提取特定模式的IP地址。最后,sed的元字符集和一系列輔助操作符如`^`、`$`、`a`、`b`等,為復(fù)雜文本處理提供了豐富的手段。掌握sed,對(duì)于Linux系統(tǒng)中的文本操作無疑是個(gè)得力助手。
Linux sed 文本替換
在替換過程中,sed允許引用已匹配的字符串,使用&符號(hào)。同時(shí),子串匹配標(biāo)記如\\1,用于引用樣式中的特定部分。例如,([a-z]+)匹配第一個(gè)單詞,([A-Z]+)匹配第二個(gè),然后通過\\1和\\2進(jìn)行反向引用,以實(shí)現(xiàn)特定的替換效果。總之,Linux sed的文本替換功能強(qiáng)大且靈活,熟練掌握這些技巧將大大提高文本...
相關(guān)評(píng)說:
安國(guó)市齒根: ______ 1、刪從0行到happy行 sed -i '0,/happy/d' test.txt2、刪從0行到happy行里面的happy行,相當(dāng)于刪除第一個(gè)happy行 sed -i '0,/happy/{/happy/d}' test.txt3、{}組合命令 一組命令作為一個(gè)塊被應(yīng)用 函數(shù)命令之間用";"分割 組合可以嵌套
安國(guó)市齒根: ______ 在字符替換中,可能會(huì)遇見引號(hào),“/”等的替換,這時(shí)應(yīng)該注意,sed的命令原型是:sed -i "s/oldstring/goalstring/g" file 如果一個(gè)路徑是data/path/abc,現(xiàn)在要將此路徑換成一個(gè)字符串cde 但是這時(shí)跟在s后邊的其實(shí)是分隔符,用以將...
安國(guó)市齒根: ______[答案] s:替換 \.gds[.]*:以.開頭,之后是gds, [.]* 這個(gè)寫的比較奇怪,感覺是若干個(gè).(0-n) //:中間什么都沒有,相當(dāng)于用空字符串替換,即將前面那個(gè)“\.gds[.]*”模式匹配的內(nèi)容刪除 g:如果一行中有多個(gè)匹配,都替換
安國(guó)市齒根: ______ sed命令的功能同awk類似,差別在于,sed簡(jiǎn)單,對(duì)列處理的功能要差一些,awk的功能復(fù)雜,對(duì)列處理的功能比較強(qiáng)大,sed全稱是:Stream EDitor SED(Surface-conduction Electron-emitter Display)談到平板顯示技術(shù),多數(shù)人可能只知道液晶...
安國(guó)市齒根: ______ 列出當(dāng)前目錄下所有文件,并且在每個(gè)文件名前加上當(dāng)前目錄路徑 ls 列出當(dāng)前目錄下所有文件(夾) ,然后通過 管道 | 將輸出傳給下一個(gè)命令 sed "s:^:`pwd`/:" pwd命令返回當(dāng)前目錄,`pwd`將pwd命令的輸出作為一個(gè)字符串,"s:^:`pwd`/:"將行首替換為當(dāng)前目錄
安國(guó)市齒根: ______ \(\)括起來的是捕獲組,你可以在后面的替換中用\1 \2 之類的來調(diào)用 .表示任意一個(gè)字符 *表示*前面出現(xiàn)的那個(gè)字符重復(fù)0或任意次 你寫8,第一個(gè)捕獲組捕獲0個(gè)字符,第二個(gè)捕獲組捕獲一個(gè)字符
安國(guó)市齒根: ______ 's/^\(..\)\(..\)\(..\)\(..\).*$/\1:\2:\3:\4/' 就是如下的效果 將 aabbccddeeffgghh 替換為 aa:bb:cc:dd其中^表示從一行的開頭匹配 第一個(gè)\(..\)表示匹配任意2個(gè)字符,并且后面的\1,就是這次匹配的結(jié)果.對(duì)于字符串a(chǎn)abbccddeeffgghh而言,就是aa這2個(gè)字符 同理,第二\(..\)匹配bb,對(duì)應(yīng)\2 第三\(..\)匹配cc,對(duì)應(yīng)\3 第四\(..\)匹配dd,對(duì)應(yīng)\4 剩下的eeffgghh匹配 .*$,其中.*表示匹配任意個(gè)字符,$匹配到末尾,這些字符串被拋棄 aabbccddeeffgghh得到的結(jié)果就是aa:bb:cc:dd
安國(guó)市齒根: ______ `` 符號(hào)在shell里面正式的名稱叫做backquote , 一般叫做命令替換 其作用是將引用命令的輸出替換到字符串或者變量 通常的 你需要在一個(gè)序列中需要用到其它命令的輸出,就可以用``
安國(guó)市齒根: ______ 可以使用sed命令: sed 's/^M//' test.sh > back.sh 注意^M是敲ctrl_v ctrl-m得到的 或者 dos2unix test.sh
安國(guó)市齒根: ______ 應(yīng)該是sed -n "11p"你的那個(gè)寫法相當(dāng)于 sed -n "${ip}" ,等于是取變量ip的值,當(dāng)然不行了