佳木斯湛栽影视文化发展公司

主頁 > 知識庫 > 實戰(zhàn)基本的Linux sed命令示例代碼

實戰(zhàn)基本的Linux sed命令示例代碼

熱門標(biāo)簽:網(wǎng)站建設(shè) 智能手機 阿里云 檢查注冊表項 硅谷的囚徒呼叫中心 使用U盤裝系統(tǒng) 百度競價點擊價格的計算公式 美圖手機

Linux流編輯器是在數(shù)據(jù)中心中運行腳本的一種有用方法。通過這些命令示例,您可以開始熟悉sed。

想要修改文件而不覆蓋原始文件的Linux管理員有很多選擇,但最有效的工具之一是流編輯器 - sed。

流編輯器是大多數(shù)Linux發(fā)行版的默認(rèn)部分。它使您能夠使用Linux sed命令在操作系統(tǒng)中執(zhí)行文本文件操作。

與大多數(shù)Linux應(yīng)用程序一樣,sed可以處理管道輸入,這使它成為一種有效的腳本工具。您可以將其用作基本的查找和替換工具,如下面的示例命令所示,該命令查找出現(xiàn)的一個實例,并將其替換為兩個實例。命令以 /g結(jié)束。

sed 's/one/two/g' linuxidc linuxmi

例如,這個Linux sed命令可以幫助您定位和創(chuàng)建配置文件的新版本。當(dāng)這些函數(shù)作為腳本的一部分運行時,它們是可重復(fù)的和一致的,并且您可以快速實現(xiàn)更改。

但是sed的主要目的是更改文本文件的內(nèi)容。它使用了一些重要的命令行開關(guān)。/s表示搜索,該命令以/g分隔。-i開關(guān)在適當(dāng)?shù)奈恢蒙线\行命令——它直接修改文件。

sed -i 's/Port 22/Port 10000/g' /etc/ssh/sshd_config

在此示例中,/etc/ssh/sshd_config文件中Secure Shell服務(wù)器中使用的端口號從默認(rèn)端口22更改為端口10000。

使用Linux sed命令進(jìn)行文件更改

可以使用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命令。 它提供了更詳細(xì)的命令和語法分解。

總結(jié)

以上所述是小編給大家介紹的實戰(zhàn)基本的Linux sed命令示例代碼,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復(fù)大家的。在此也非常感謝大家對腳本之家網(wǎng)站的支持!

標(biāo)簽:湖北 山南 煙臺 通遼 懷化 賀州 湘潭 黃山

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《實戰(zhàn)基本的Linux sed命令示例代碼》,本文關(guān)鍵詞  ;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請?zhí)峁┫嚓P(guān)信息告之我們,我們將及時溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 收縮
    • 微信客服
    • 微信二維碼
    • 電話咨詢

    • 400-1100-266
    高平市| 丰城市| 鄢陵县| 林周县| 运城市| 乌拉特中旗| 仁布县| 伊宁县| 棋牌| 德清县| 郧西县| 石柱| 鄂尔多斯市| 通河县| 黔江区| 寻乌县| 安吉县| 都安| 涟水县| 安陆市| 嘉定区| 依兰县| 荣成市| 亳州市| 普定县| 锡林浩特市| 申扎县| 霍林郭勒市| 休宁县| 东乡县| 抚远县| 板桥市| 田林县| 安宁市| 连州市| 井陉县| 察雅县| 台安县| 漳州市| 东平县| 天津市|