sed全稱叫stream editor,是一種流編輯器,它一次處理一行內容。處理時,把當前處理的行儲存在臨時緩衝區中,稱為「模式空間」(patternspace),接著用sed命令處理緩衝區中的內容,處理完成後,把緩衝區的內容送往螢幕。然後讀入下行,執行下乙個迴圈。如果沒有使諸如『d』的特殊命令,那會在兩個迴圈之間清空模式空間,但不會清空保留空間。這樣不斷重複,直到檔案末尾。檔案內容並沒有改變,除非你使用重定向儲存輸出。主要用來自動編輯乙個或多個檔案,簡化對檔案的反覆操作,編寫轉換程式等。
sed: 模式空間
預設不編輯原檔案,僅對模式空間中的資料做處理;而後,處理結束後,將模式空間列印至螢幕;
sed [options] 'command'
file(s)
sed –n 『2p』 /etc/passwd 列印第二行內容
sed –n 『1,4p』 /etc/passwd 列印第一到第四行內容
sed –n 『/root/p』 /etc/passwd 列印
sed –n 『2,/root/p』 /etc/passwd 從2行開始
sed -n 『/^$/=』 file 顯示空行行號
sed –n –e 『/^$/p』 –e 『/^$/=』 file 同時執行多個文字
sed 『/root/a\superman』 /etc/passwd 在root所在行行後插入superman
sed 『/root/i\superman』 /etc/passwd 行前
sed 『/root/c\superman』 /etc/passwd 代替行
sed 『/^$/d』 file 刪除空白行
sed 『1,10d』 file 刪除1行到10行
nl /etc/passwd | sed 『2,5d』
nl /etc/passwd | sed 『2a tea』
sed 's/test/mytest/g' example
sed –n 『s/root/&superman/p』 /etc/passwd 單詞後
sed –n 『s/root/superman&/p』 /etc/passwd 單詞前
[[email protected]~]#sed -n "s/root/superman&/p" /etc/passwd
supermanroot:x:0:0:root:/root:/bin/bash
operator:x:11:0:operator:/supermanroot:/sbin/nologin
1、刪除/etc/grub.conf檔案中行首的空白符;
sed -r 's@^[[:spapce:]]+@@g' /etc/grub.conf 如果沒有 / 可以用/d 來刪除
2、替換/etc/inittab檔案中"id:3:initdefault:"一行中的數字為5;
sed 's@\(id:\)[0-9]\(:initdefault:\)@\15\2@g' /etc/inittab
3、刪除/etc/inittab檔案中的空白行;
sed '/^$/d' /etc/inittab
4、刪除/etc/inittab檔案中開頭的#號;
sed 's@^#@@g' /etc/inittab
5、刪除某檔案中開頭的#號及後面的空白字元,但要求#號後面必須有空白字元;
sed -r 's@^#[[:space:]]+@@g' /etc/inittab
6、刪除某檔案中以空白字元後面跟#類的行中的開頭的空白字元及#
sed -r 's@^[[:space:]]+#@@g' /etc/inittab
7、取出乙個檔案路徑的目錄名稱;
echo
"/etc/rc.d/" | sed -r 's@^(/.*/)[^/]+/?@\1@g'
基名:echo "/etc/rc.d/" | sed -r 's@^/.*/([^/]+)/?@\1@g' [^/] 表示非/ 的字元 別看成/ 開頭的了!!
文字處理工具sed
1 刪除centos7系統 etc grub2.cfg檔案中所有以空白開頭的行行首的空白字元 sed d etc grub2.cfg 2 刪除 etc fstab檔案中所有以 開頭,後面至少跟乙個空白字元的行的行首的 和空白字元 sed r space d d etc fstab 包括空白行 sed...
linux文字處理工具之sed
sed 2,5d file顯示檔案file,除去2 5行,但行數超過檔案實際行數時不會報錯。sed 10 1 4 d file 顯示檔案file,除去包含101 104的行。sed 2,d file 顯示檔案,只顯示第一行。sed 2,d file則只顯示除第一行外的其它行。sed d file 刪...
linux文字處理工具sed 總結
cat file1 command sed,grep,awk,grep,etc.result.txt 合併乙個檔案的詳細說明文字,並將簡介寫入乙個新檔案中 cat file1 command sed,grep,awk,grep,etc.result.txt 合併乙個檔案的詳細說明文字,並將簡介寫入乙...