新聞中心
在Linux系統(tǒng)中,sed是一個(gè)極為有用的命令行工具。它可以幫助我們快速處理文本文件,進(jìn)行搜索、替換、刪除等操作。當(dāng)我們需要對(duì)大量文本進(jìn)行修改時(shí),使用sed可以幫助我們快速高效地達(dá)成目標(biāo)。本文將介紹,希望對(duì)讀者有所幫助。

讓客戶滿意是我們工作的目標(biāo),不斷超越客戶的期望值來自于我們對(duì)這個(gè)行業(yè)的熱愛。我們立志把好的技術(shù)通過有效、簡單的方式提供給客戶,將通過不懈努力成為客戶在信息化領(lǐng)域值得信任、有價(jià)值的長期合作伙伴,公司提供的服務(wù)項(xiàng)目有:國際域名空間、網(wǎng)站空間、營銷軟件、網(wǎng)站建設(shè)、惠農(nóng)網(wǎng)站維護(hù)、網(wǎng)站推廣。
一、什么是sed命令?
sed命令是一個(gè)用于在Linux系統(tǒng)中處理文本文件的命令行工具。通過組合sed命令和正則表達(dá)式,我們可以對(duì)文本文件中的特定內(nèi)容進(jìn)行查找、替換、刪除等操作。sed命令可以傳入多個(gè)參數(shù),以滿足不同需求的使用者。下面我們將分別講解sed命令中使用參數(shù)的技巧和要點(diǎn):
二、使用命令行參數(shù)
命令行參數(shù)是指在執(zhí)行一個(gè)命令時(shí),可以通過在命令后面添加特定參數(shù)來修改命令默認(rèn)的操作方式。在sed中,我們通過傳入?yún)?shù)來指定要執(zhí)行的操作。兩個(gè)常用的參數(shù)是-i和-e。
-i參數(shù)
-i參數(shù)指定sed在編輯文件時(shí)直接修改原始文件。例如,我們可以使用以下命令來將file.txt中所有包含“old”字符串的行替換為“new”:
sed -i ‘s/old/new/g’ file.txt
上述命令中,“-i”參數(shù)告訴sed直接修改原始文件,而“s/old/new/g”則是一個(gè)替換命令,將“old”替換為“new”。
-e參數(shù)
-e參數(shù)用于在一行上執(zhí)行多個(gè)sed命令。它允許我們執(zhí)行多個(gè)操作,從而更快地完成任務(wù)。例如,我們可以使用以下命令來在file.txt文件中刪除以“#”開頭的注釋行,以及刪除空行:
sed -e ‘/^#/d’ -e ‘/^$/d’ file.txt
上述命令中,“-e”參數(shù)告訴sed我們要執(zhí)行多個(gè)操作。在該命令中,之一個(gè)參數(shù)“/^#/d”表示刪除所有以“#”開頭的注釋行,而第二個(gè)參數(shù)“/^$/d”表示刪除所有空行。
三、在命令中傳遞參數(shù)
如果我們需要在sed命令中使用變量,我們可以使用雙引號(hào)“”將整個(gè)命令包起來,并在變量名前添加“$”符號(hào)。例如,我們可以使用以下命令將指定變量中包含的字符串替換為另一個(gè)字符串:
text=”This is a test”
echo $text | sed “s/test/example/g”
上述命令將“test”替換為“example”并輸出。通過使用雙引號(hào)和$符號(hào),我們可以在sed命令中使用變量,從而更加靈活地處理文本。
四、在文件中傳遞參數(shù)
如果我們需要在sed命令中使用文件,我們可以使用“-f”參數(shù)來傳遞一個(gè)包含sed命令的文件。例如,我們可以創(chuàng)建一個(gè)名為“commands.sed”的文件,包含以下命令:
s/old/new/g
s/day/night/g
添加上述命令后,我們可以使用以下命令將“file.txt”中的字符串進(jìn)行替換:
sed -f commands.sed file.txt
上述命令將commands.sed文件中的兩個(gè)替換命令分別運(yùn)用到file.txt中的每一行上。
五、
以上是Linux命令行中使用sed傳入?yún)?shù)的一些技巧和要點(diǎn)。通過使用這些技巧,我們可以更加靈活高效地使用sed命令來編輯文本文件。同時(shí),我們也可以從中發(fā)現(xiàn),命令行參數(shù)在Linux系統(tǒng)中的使用非常強(qiáng)大,并且可以幫助我們快速處理大量文本文件。希望本文能夠?qū)δ阍贚inux系統(tǒng)中使用sed進(jìn)行文本處理時(shí)有所幫助。
成都網(wǎng)站建設(shè)公司-創(chuàng)新互聯(lián),建站經(jīng)驗(yàn)豐富以策略為先導(dǎo)10多年以來專注數(shù)字化網(wǎng)站建設(shè),提供企業(yè)網(wǎng)站建設(shè),高端網(wǎng)站設(shè)計(jì),響應(yīng)式網(wǎng)站制作,設(shè)計(jì)師量身打造品牌風(fēng)格,熱線:028-86922220linux指令 sed指令怎么選擇列
sed 編返純輯器是 Linux 系統(tǒng)管理員的工具包中最有用的資產(chǎn)之一
Linux 操作系統(tǒng)更大的一個(gè)好處是它帶有各種各樣的實(shí)用工具。存在如此之多不同的實(shí)用工具,幾乎不可能知道并了解所有這些工具??梢院喕P(guān)鍵情況下操作的一個(gè)實(shí)用 工具是 sed。它是任何管理員的工具包中最強(qiáng)大的工具之一,并且可以證明它自己在關(guān)鍵情況下非常有價(jià)值。
sed 實(shí)用工具是一個(gè)“編輯器”,但它與其它大多數(shù)編輯器不同。除了不面向屏幕之外,它還是非交互式的。這意味著您必須將要對(duì)數(shù)據(jù)執(zhí)行的命令插入到命令行或要處 理的腳本中。當(dāng)顯示它時(shí),請(qǐng)忘記您在使用 Microsoft Word 或其它大多數(shù)編輯器時(shí)擁有的交互式編輯文件功能。sed 在一個(gè)文件(或文件集)中非交互式、漏昌咐并且不加詢問地接收一系列的命令并執(zhí)行它們。因而,它流經(jīng)文本就如同水流經(jīng)溪流一樣,因而 sed 恰當(dāng)?shù)卮砹肆骶庉嬈?。它可以用來將所有出現(xiàn)的 “Mr. Smyth” 修改為 “Mr. Smith”,或?qū)?“tiger cub” 修改為 “wolf cub”。流編輯器非常適合于執(zhí)行重復(fù)的編輯,這種重復(fù)編輯如果迅睜由人工完成將花費(fèi)大量的時(shí)間。其參數(shù)可能和一次性使用一個(gè)簡單的操作所需的參數(shù)一樣有限, 或者和一個(gè)具有成千上萬行要進(jìn)行編輯修改的腳本文件一樣復(fù)雜。sed 是 Linux 和 UNIX 工具箱中最有用的工具之一,且使用的參數(shù)非常少。
首先我這邊先建一個(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/匹配行,并且打印匹配行所在的行號(hào),此時(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
一定不要忘記單引號(hào).
還有一個(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。
linux sed 傳入?yún)?shù)的介紹就聊到這里吧,感謝你花時(shí)間閱讀本站內(nèi)容,更多關(guān)于linux sed 傳入?yún)?shù),Linux命令行中使用sed傳入?yún)?shù)的技巧,linux指令 sed指令怎么選擇列的信息別忘了在本站進(jìn)行查找喔。
成都創(chuàng)新互聯(lián)科技公司主營:網(wǎng)站設(shè)計(jì)、網(wǎng)站建設(shè)、小程序制作、成都軟件開發(fā)、網(wǎng)頁設(shè)計(jì)、微信開發(fā)、成都小程序開發(fā)、網(wǎng)站制作、網(wǎng)站開發(fā)等業(yè)務(wù),是專業(yè)的成都做小程序公司、成都網(wǎng)站建設(shè)公司、成都做網(wǎng)站的公司。創(chuàng)新互聯(lián)公司集小程序制作創(chuàng)意,網(wǎng)站制作策劃,畫冊(cè)、網(wǎng)頁、VI設(shè)計(jì),網(wǎng)站、軟件、微信、小程序開發(fā)于一體。
分享名稱:Linux命令行中使用sed傳入?yún)?shù)的技巧(linuxsed傳入?yún)?shù))
URL鏈接:http://www.dlmjj.cn/article/djisihj.html


咨詢
建站咨詢
