實(shí)戰(zhàn)基本的Linux sed命令示例代碼
Linux流編輯器是在數(shù)據(jù)中心中運(yùn)行腳本的一種有用方法。通過這些命令示例,您可以開始熟悉sed。
想要修改文件而不覆蓋原始文件的Linux管理員有很多選擇,但最有效的工具之一是流編輯器 - sed。
流編輯器是大多數(shù)Linux發(fā)行版的默認(rèn)部分。它使您能夠使用Linux sed命令在操作系統(tǒng)中執(zhí)行文本文件操作。
與大多數(shù)Linux應(yīng)用程序一樣,sed可以處理管道輸入,這使它成為一種有效的腳本工具。您可以將其用作基本的查找和替換工具,如下面的示例命令所示,該命令查找出現(xiàn)的一個(gè)實(shí)例,并將其替換為兩個(gè)實(shí)例。命令以 /g結(jié)束。
sed 's/one/two/g' linuxidc linuxmi
例如,這個(gè)Linux sed命令可以幫助您定位和創(chuàng)建配置文件的新版本。當(dāng)這些函數(shù)作為腳本的一部分運(yùn)行時(shí),它們是可重復(fù)的和一致的,并且您可以快速實(shí)現(xiàn)更改。
但是sed的主要目的是更改文本文件的內(nèi)容。它使用了一些重要的命令行開關(guān)。/s表示搜索,該命令以/g分隔。-i開關(guān)在適當(dāng)?shù)奈恢蒙线\(yùn)行命令——它直接修改文件。
sed -i 's/Port 22/Port 10000/g' /etc/ssh/sshd_config
在此示例中,/etc/ssh/sshd_config文件中Secure Shell服務(wù)器中使用的端口號(hào)從默認(rèn)端口22更改為端口10000。
使用Linux sed命令進(jìn)行文件更改
可以使用sed編輯文件,但有點(diǎn)不滿意。 ad hoc編輯可能會(huì)導(dǎo)致問題,因?yàn)閟ed無(wú)法訪問完整的源代碼,也無(wú)法識(shí)別錯(cuò)誤或拼寫錯(cuò)誤。 此外,這樣做會(huì)使原始文件處于危險(xiǎn)之中,因?yàn)橐坏┠牧嗽即a,就無(wú)法恢復(fù)原始代碼。
您可以使用-e開關(guān)一次指定多個(gè)更改。 同樣,sshd_config.conf文件使得更改多行變得簡(jiǎn)單。 下面的腳本可能看起來(lái)很復(fù)雜,但操作系統(tǒng)只是傳遞多個(gè)sed更改數(shù)據(jù)包,每個(gè)數(shù)據(jù)包前綴為-e。
使用sshd_config文件,您可以更改端口號(hào),禁用密碼身份驗(yàn)證并一步啟用公鑰身份驗(yàn)證。
sed -i -e 's/Port 22/Port 10000/g' -e ' s/PermitRootLogin yes/PermitRootLogin no/g' -e ' s/PasswordAuthentication yes/PasswordAuthentication no/g' -e ' s/#PasswordAuthentication no/#PasswordAuthentication no/g' /etc/ssh/sshd_config
搜索和替換功能在新的一行; 用\分解命令不起作用,因?yàn)閟ed將其視為特殊字符。
結(jié)合sed中的提示
您還可以將多個(gè)Linux sed命令鏈接在一起以更改應(yīng)用程序的位置。 手動(dòng)修改文件路徑有很大的錯(cuò)誤空間,但自動(dòng)化它可以使生活更輕松。
用作分隔符的反斜杠可能不適用于某些腳本,但sed允許您更改分隔符。 例如,假設(shè)您有一個(gè)名為example.conf的日志文件,其中包含以下內(nèi)容:
logpath = /var/log/mylogfile.log
將此路徑更改為/my/alternate/path/newlog.log
,您可以使用|作為分隔符,因?yàn)?在文件系統(tǒng)路徑中不起作用。
sed -i 's|/var/log/mylogfile.log|/my/alternate/path/newlog.log|g' example.conf
使用Linux sed命令的其他方法包括使用^#MyComment為搜索模式添加前綴; 這會(huì)搜索以#MyComment開頭的行。 您可以在輸出端使用它,以便創(chuàng)建一個(gè)新行來(lái)替換現(xiàn)有的一行。 您還可以使用$字符在行尾查找內(nèi)容。
要查看更高級(jí)的示例,請(qǐng)使用man sed命令。 它提供了更詳細(xì)的命令和語(yǔ)法分解。
以上所述是小編給大家介紹的實(shí)戰(zhàn)基本的Linux sed命令示例代碼,希望對(duì)大家有所幫助,如果大家有任何疑問請(qǐng)給我留言,小編會(huì)及時(shí)回復(fù)大家的。在此也非常感謝大家對(duì)腳本之家網(wǎng)站的支持!
相關(guān)文章
Linux7.7設(shè)置交換分區(qū)SWAP的方法
這篇文章主要介紹了Linux7.7設(shè)置交換分區(qū)SWAP的方法,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-11-11CentOS 下yum安裝mysql、jdk和tomcat的方法
這篇文章主要介紹了CentOS 下yum安裝mysql、jdk和tomcat的方法的相關(guān)資料,需要的朋友可以參考下2016-10-10詳解CentOS阿里云云服務(wù)器硬盤分區(qū)及掛載
這篇文章主要介紹了詳解CentOS阿里云云服務(wù)器硬盤分區(qū)及掛載 ,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來(lái)看看吧2016-12-12在Linux中使用MD5實(shí)現(xiàn)用戶驗(yàn)證的解決方法
本篇文章小編為大家介紹,在Linux中使用MD5實(shí)現(xiàn)用戶驗(yàn)證的解決方法。需要的朋友參考下2013-04-04Linux 4.9內(nèi)核正式發(fā)布!來(lái)看看更新了什么?
Linus Torvalds 在 2016年12月11日發(fā)布了Linux內(nèi)核4.9的正式版本,這次主要帶來(lái)了一些新的功能和一些驅(qū)動(dòng)更新,當(dāng)然,還有一些底層的改進(jìn)。想要看看詳細(xì)的介紹,下面來(lái)通過這篇文章來(lái)一起看看吧。2016-12-12