如何在Linux中使用sed命令?很多新手對此不是很清楚,為了幫助大家解決這個難題,下面小編將為大家詳細講解,有這方面需求的人可以來學習下,希望你能有所收獲。
創(chuàng)新互聯(lián)公司-專業(yè)網(wǎng)站定制、快速模板網(wǎng)站建設(shè)、高性價比亳州網(wǎng)站開發(fā)、企業(yè)建站全套包干低至880元,成熟完善的模板庫,直接使用。一站式亳州網(wǎng)站制作公司更省心,省錢,快速模板網(wǎng)站建設(shè)找我們,業(yè)務(wù)覆蓋亳州地區(qū)。費用合理售后完善,十多年實體公司更值得信賴。sed 's/one/two/g' linuxidc linuxmi
例如,這個Linux sed命令可以幫助您定位和創(chuàng)建配置文件的新版本。當這些函數(shù)作為腳本的一部分運行時,它們是可重復(fù)的和一致的,并且您可以快速實現(xiàn)更改。
但是sed的主要目的是更改文本文件的內(nèi)容。它使用了一些重要的命令行開關(guān)。/s表示搜索,該命令以/g分隔。-i開關(guān)在適當?shù)奈恢蒙线\行命令——它直接修改文件。
sed -i 's/Port 22/Port 10000/g' /etc/ssh/sshd_config
在此示例中,/etc/ssh/sshd_config文件中Secure Shell服務(wù)器中使用的端口號從默認端口22更改為端口10000。
使用Linux sed命令進行文件更改
可以使用sed編輯文件,但有點不滿意。 ad hoc編輯可能會導(dǎo)致問題,因為sed無法訪問完整的源代碼,也無法識別錯誤或拼寫錯誤。 此外,這樣做會使原始文件處于危險之中,因為一旦您更改了原始代碼,就無法恢復(fù)原始代碼。
您可以使用-e開關(guān)一次指定多個更改。 同樣,sshd_config.conf文件使得更改多行變得簡單。 下面的腳本可能看起來很復(fù)雜,但操作系統(tǒng)只是傳遞多個sed更改數(shù)據(jù)包,每個數(shù)據(jù)包前綴為-e。
使用sshd_config文件,您可以更改端口號,禁用密碼身份驗證并一步啟用公鑰身份驗證。
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
搜索和替換功能在新的一行; 用\分解命令不起作用,因為sed將其視為特殊字符。
結(jié)合sed中的提示
您還可以將多個Linux sed命令鏈接在一起以更改應(yīng)用程序的位置。 手動修改文件路徑有很大的錯誤空間,但自動化它可以使生活更輕松。
用作分隔符的反斜杠可能不適用于某些腳本,但sed允許您更改分隔符。 例如,假設(shè)您有一個名為example.conf的日志文件,其中包含以下內(nèi)容:
logpath = /var/log/mylogfile.log
將此路徑更改為/my/alternate/path/newlog.log
,您可以使用|作為分隔符,因為/在文件系統(tǒng)路徑中不起作用。
sed -i 's|/var/log/mylogfile.log|/my/alternate/path/newlog.log|g' example.conf
使用Linux sed命令的其他方法包括使用^#MyComment為搜索模式添加前綴; 這會搜索以#MyComment開頭的行。 您可以在輸出端使用它,以便創(chuàng)建一個新行來替換現(xiàn)有的一行。 您還可以使用$字符在行尾查找內(nèi)容。
要查看更高級的示例,請使用man sed命令。 它提供了更詳細的命令和語法分解。
總結(jié)
看完上述內(nèi)容是否對您有幫助呢?如果還想對相關(guān)知識有進一步的了解或閱讀更多相關(guān)文章,請關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,感謝您對創(chuàng)新互聯(lián)的支持。