日日操夜夜添-日日操影院-日日草夜夜操-日日干干-精品一区二区三区波多野结衣-精品一区二区三区高清免费不卡

公告:魔扣目錄網為廣大站長提供免費收錄網站服務,提交前請做好本站友鏈:【 網站目錄:http://www.ylptlb.cn 】, 免友鏈快審服務(50元/站),

點擊這里在線咨詢客服
新站提交
  • 網站:51998
  • 待審:31
  • 小程序:12
  • 文章:1030137
  • 會員:747


 

SED 命令或 流編輯器是 linux / Unix 系統提供的非常強大的實用程序。它主要用于文本替換,查找和替換,但也可以執行其他文本操作,例如 插入,刪除,搜索 等。使用 SED,我們可以編輯完整的文件而無需打開它。SED 還支持使用正則表達式,這使得 SED 成為更強大的測試操作工具。

基本語法如下:

sed OPTIONS… [SCRIPT] [INPUTFILE…]

 

(1) 顯示文件的部分文本

使用 sed,可以只查看文件的一部分,而不是查看整個文件,示例如下:

[linuxtechi@localhost ~]$ sed -n 22,29p testfile.txt

本例子,選項 n 將抑制整個文件的打印,選項 p 將只打印 22-29 行

(2) 顯示除某些行之外的所有行

使用選項 d,顯示除 22-29 行之外的所有行

[linuxtechi@localhost ~]$ sed 22,29d testfile.txt

(3) 顯示從第 n 行開始的每 m 行

顯示從第 2 行或任何其他行開始的每 3 行內容,使用以下命令

[linuxtechi@localhost ~]$ sed -n '2~3p' file.txt

(4) 刪除一行

其中 N 是行號,選項 d 將刪除提到的行號,示例如下:

[linuxtechi@localhost ~]$ sed Nd testfile.txt

若要刪除文件的最后一行,請使用如下命令:

[linuxtechi@localhost ~]$ sed $d testfile.txt

(5) 刪除一系列行

從 testfile.txt 文件中刪除 29-34 行

[linuxtechi@localhost ~]$ sed '29,34d' testfile.txt

(6) 刪除范圍以外的行

從 testfile.txt 文件中刪除 29-34 之外的行

[linuxtechi@localhost ~]$ sed '29,34!d' testfile.txt

(7) 添加空白行 / 空格

使用選項 G, 可以在每個非空行之后添加一個空行

[linuxtechi@localhost ~]$ sed G testfile.txt

(8) 查找和替換(首次替換)

使用 s 選項,將搜索 danger,并將其替換為 saftey,執行首次匹配。

[linuxtechi@localhost ~]$ sed 's/danger/safety/' testfile.txt

(9) 查找和替換(全局替換)

為了完全替換文件中的所以單詞,我們將使用帶有 s 的選項 g

[linuxtechi@localhost ~]$ sed 's/danger/safety/g' testfile.txt

(10) 替換第 n 次出現的字符串模式

還可以在第 n 次出現時替換字符串,比如只有在第二次出現時才用 danger 替換 safety,依然是首次替換模式

[linuxtechi@localhost ~]$ sed 's/danger/safety/2' testfile.txt

為了完全替換第 2 次出現的所有單詞,我們將使用帶有 s 的選項 g,完全替換模式

[linuxtechi@localhost ~]$ sed 's/danger/safety/2g' testfile.txt

(11) 替換特定行上的字符串

只替換文件第 4 行的字符串

[linuxtechi@localhost ~]$ sed '4 s/danger/safety/' testfile.txt

替換文件第 4-9 行的字符串

[linuxtechi@localhost ~]$  sed '4,9 s/danger/safety/' testfile.txt

(12) 在匹配搜索之后 / 之前添加一行

使用選項 a, 在每個模式匹配之后添加新行

[linuxtechi@localhost ~]$ sed '/danger/a "This is new line with text after match"' testfile.txt

使用選項 i, 在每個模式匹配之前添加新行

[linuxtechi@localhost ~]$ sed '/danger/i "This is new line with text before match" ' testfile.txt

(13) 用匹配的模式更改整行

使用 c 選項,當匹配時,正行都會被新內容替換,示例如下:

[linuxtechi@localhost ~]$ sed '/danger/c "This will be the new line" ' testfile.txt

到目前為止,我們只使用 sed 的簡單表達式,現在我們將討論 sed 與 regex 的一些高級用法

(14) 運行多個 sed 命令

如果需要執行多個 sed 表達式,可以使用選項 e 將 sed 命令鏈接起來

[linuxtechi@localhost ~]$  sed -e 's/danger/safety/g' -e 's/hate/love/' testfile.txt

(15) 在編輯文件之前進行備份

編輯之前創建文件的備份副本,請使用選項 -i.bak

[linuxtechi@localhost ~]$ sed -i.bak -e 's/danger/safety/g'  testfile.txt

這將創建擴展名為.bak 的文件的備份副本,你也可以使用其他擴展,例如 -i.backup

(16) 刪除以模式開頭和結尾的文件行

刪除以特定字符串開始并以另一個字符串結束的行,示例如下:

[linuxtechi@localhost ~]$ sed -e 's/^danger.*stops$//g' testfile.txt

(17) 附加行

使用 sed & regex 在每行之前添加一些內容,示例如下:

[linuxtechi@localhost ~]$ sed -e 's/.*/testing sed &/' testfile.txt

(18) 刪除所有注釋行和空行

要刪除所有注釋行,即帶有 # 和所有空行的行,使用如下命令

[linuxtechi@localhost ~]$ sed -e 's/#.*//;/^$/d' testfile.txt

只刪除注釋行,使用如下命令:

[linuxtechi@localhost ~]$ sed -e 's/#.*//' testfile.txt

(19) 從 /etc/passwd 文件獲取所有用戶名

要獲取 /etc/passwd 文件的所有用戶名列表,使用如下命令:

[linuxtechi@localhost ~]$  sed 's/([^:]*).*/1/' /etc/passwd

(20) 防止覆蓋系統鏈接

sed -i 命令已經被用來刪除系統鏈接,并只創建常規文件來代替鏈接文件。因此,為了避免這種情況并防止 sed -i 破壞鏈接,請在執行命令時使用 follow-symklinks 選項。

假設我們想在 centos 或 RHEL 服務器上禁用 SELinux

[linuxtechi@localhost ~]# sed -i --follow-symlinks 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/sysconfig/selinux

分享到:
標簽:Linux
用戶無頭像

網友整理

注冊時間:

網站:5 個   小程序:0 個  文章:12 篇

  • 51998

    網站

  • 12

    小程序

  • 1030137

    文章

  • 747

    會員

趕快注冊賬號,推廣您的網站吧!
最新入駐小程序

數獨大挑戰2018-06-03

數獨一種數學游戲,玩家需要根據9

答題星2018-06-03

您可以通過答題星輕松地創建試卷

全階人生考試2018-06-03

各種考試題,題庫,初中,高中,大學四六

運動步數有氧達人2018-06-03

記錄運動步數,積累氧氣值。還可偷

每日養生app2018-06-03

每日養生,天天健康

體育訓練成績評定2018-06-03

通用課目體育訓練成績評定