您好,登錄后才能下訂單哦!
如何在Linux中使用sed命令?很多新手對此不是很清楚,為了幫助大家解決這個難題,下面小編將為大家詳細講解,有這方面需求的人可以來學習下,希望你能有所收獲。
sed 's/one/two/g' linuxidc linuxmi
例如,這個Linux sed命令可以幫助您定位和創建配置文件的新版本。當這些函數作為腳本的一部分運行時,它們是可重復的和一致的,并且您可以快速實現更改。
但是sed的主要目的是更改文本文件的內容。它使用了一些重要的命令行開關。/s表示搜索,該命令以/g分隔。-i開關在適當的位置上運行命令——它直接修改文件。
sed -i 's/Port 22/Port 10000/g' /etc/ssh/sshd_config
在此示例中,/etc/ssh/sshd_config文件中Secure Shell服務器中使用的端口號從默認端口22更改為端口10000。
使用Linux sed命令進行文件更改
可以使用sed編輯文件,但有點不滿意。 ad hoc編輯可能會導致問題,因為sed無法訪問完整的源代碼,也無法識別錯誤或拼寫錯誤。 此外,這樣做會使原始文件處于危險之中,因為一旦您更改了原始代碼,就無法恢復原始代碼。
您可以使用-e開關一次指定多個更改。 同樣,sshd_config.conf文件使得更改多行變得簡單。 下面的腳本可能看起來很復雜,但操作系統只是傳遞多個sed更改數據包,每個數據包前綴為-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將其視為特殊字符。
結合sed中的提示
您還可以將多個Linux sed命令鏈接在一起以更改應用程序的位置。 手動修改文件路徑有很大的錯誤空間,但自動化它可以使生活更輕松。
用作分隔符的反斜杠可能不適用于某些腳本,但sed允許您更改分隔符。 例如,假設您有一個名為example.conf的日志文件,其中包含以下內容:
logpath = /var/log/mylogfile.log
將此路徑更改為/my/alternate/path/newlog.log
,您可以使用|作為分隔符,因為/在文件系統路徑中不起作用。
sed -i 's|/var/log/mylogfile.log|/my/alternate/path/newlog.log|g' example.conf
使用Linux sed命令的其他方法包括使用^#MyComment為搜索模式添加前綴; 這會搜索以#MyComment開頭的行。 您可以在輸出端使用它,以便創建一個新行來替換現有的一行。 您還可以使用$字符在行尾查找內容。
要查看更高級的示例,請使用man sed命令。 它提供了更詳細的命令和語法分解。
總結
看完上述內容是否對您有幫助呢?如果還想對相關知識有進一步的了解或閱讀更多相關文章,請關注億速云行業資訊頻道,感謝您對億速云的支持。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。