2021-05-12 14:32:11
Linux sed命令的基本使用
sed(Stream Editor):流編輯器
一次唯讀取一行
模式空間
1、sed語法:
sed [option] "script" FILE...
2、選項:
-n:靜默模式,不輸出模式空間中的內容
-r:使用擴充套件的正規表示式
-f:/path/to/sed_script_file:指定sed指令碼檔案
-e 'script' -e 'script' :指定多個編輯指令碼
-i:直接修改讀取的檔案內容,而不是輸出到終端
3、編輯命令:
d:刪除
p:列印
i text:匹配內容上面增加text內容
a text:匹配內容西面增加text內容
r /path/to/somefile:在制定位置把另外一個檔案的內容插入進來
w /path/to/somefile:將符合條件的所有行儲存至指定得檔案中
= :顯示符合條件行的行號
例如:# sed -n '/^UUID/=' /etc/fstab
s///:查詢條件可以使用模式,但要替換的內容不行
4、地址定界:
startline,endline:1,3
/pat1/,/pat2/
/pattern/
用法:
sed [options] 'addr1[,addr2]編輯命令' FILE ...
sed [options] "addr1[,addr2]編輯命令" FILE ...
5、正規表示式:
基本的:
字元:
.
[]
[^]
次數:
*
?
{m,n}
錨定:
^
$
<,b
>,b
分組:
()
參照:
1,2,...
擴充套件:
字元:
.
[]
[[:lower:]],[[:punct:]],[[:alnum:]]
次數:
*
?
+
{m,n}
錨定:
^
$
>,b
<,b
或:
a|b
分組:
()
參照:
1,2,...
sed '地址定界s@查詢條件@替換文字@'
6、修飾符:
g:global,全域性替換
i:ignore-case,不區分字元大小寫
7、例子:
1、將selinux的enforcing改成disabled
# sed 's@^SELINUX=enforcing@SELINUX=disabled@g' /etc/selinux/config
2、刪除/etc/init.d/functions檔案中的空白行
# sed '/^$/d' /etc/init.d/functions
3、刪除/etc/inittab檔案中位於行首的#號
# sed 's@^#@@g' /etc/inittab
4、刪除/etc/rc.d/rc.sysinit資料夾中以#後跟至少一個空白字元開頭的行的行首的#和空白字元
# sed 's@^#[[:space:]]{1,}@@g' /etc/rc.d/rc.sysinit
5、刪除/boot/grub/grub.conf檔案中行首的空白字元
# sed 's@^[[:space:]]{1,}@@' /boot/grub/grub.conf
6、取出一個檔案路徑的目錄名稱
# echo /etc/sysconfig/network/ | sed 's@[^/]{1,}/?$@@'
本文永久更新連結地址:http://www.linuxidc.com/Linux/2017-01/140002.htm
相關文章