<linux小白進階> sed指令的基本用法
本文內容較簡潔,適合linux有點基礎的菜鳥。。。
功能介紹之後都有例子便於理解,希望對大家能起到幫助作用
sed 是一種在線編輯器,它一次處理一行內容。處理時,把當前處理的行存儲在臨時緩沖區中,稱為“模式空間”(pattern space),接著用sed命令處理緩沖區中的內容,處理完成後,把緩沖區的內容送往屏幕。接著處理下一行,這樣不斷重復,直到文件末尾。文件內容並沒有 改變,除非你使用重定向存儲輸出。Sed主要用來自動編輯一個或多個文件;簡化對文件的反復操作;編寫轉換程序等。
1、num1,num2:操作從num1行到num2行的內容,若只有一個num,則為精確匹配該行
EG:[[email protected] mnt]# sed ‘
2、word1,word2:從第一次匹配到字符word1到第一次匹配到字符word2之間的所有行
3、m +n:從m行開始後面的n行
EG:[[email protected] mnt]# sed ‘1 +3d‘ test 刪除文件的第1行和後面的3行
4、num a \word :在num行後年添加字符word
5、num i \word :在num行前面添加字符word
EG:
[[email protected] mnt]# sed ‘2a \hello‘ test
hello, like
hello
hello, love
[[email protected] mnt]# sed ‘2i \hello‘ test
hello
hello, like
hello, love
若想再添加一行則:
[[email protected] mnt]# sed ‘2a \hello\n\world‘ test (\n為換行符)
hello, like
hello
world
hello, love
6、r FILE:在指定行後面添加FILE內的內容
EG: sed ‘2r /etc/passwd‘ fstab ##在第二行後面加上/etc/passwd文件的內容
7、w FILE:將地址指定範圍內的內容另存到FILE中
EG:
[[email protected] mnt]# sed -n ‘1,3w /mnt/test1‘ /etc/passwd
[[email protected] mnt]# cat test1
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
8、&***:在匹配到的內容後面加上***
9、l***:在匹配到的內容後面減去*** (小寫L)
EG:
[[email protected] mnt]# cat test
hello, like
hello, love
[[email protected] mnt]# sed ‘s/l..e/&r/‘ test
hello, liker
hello, lover
[[email protected] mnt]# sed ‘s/l..r/lr/‘ test
hello, like
hello, love
Sed功能選項:
-n:只顯示被匹配到的內容,不在顯示模式空間內的內容
-i:對源文件更改
sed+正則表達式的擴展:
##測試文件為test
1、刪除文件的空白行: sed ‘/^$/d‘ test
2、刪除文件中行首的空白符: sed ‘s/^[[:space:]]//‘ test
3、刪除文件中開頭的#,但#後面必須有空白:sed ‘s/^#[[:space:]]//‘ test
本文出自 “11944248” 博客,請務必保留此出處http://11954248.blog.51cto.com/11944248/1963794
<linux小白進階> sed指令的基本用法