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

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


咨詢
建站咨詢
