sed是一個很強大的文件處理工具,主要是以行為單位進行處理,可以將數據行進行替換、刪除、新增、選取等特定工作 格式:sed [option] [command] [file] 常用命令: a ∶新增 c ∶取代 d ∶刪除 i ∶插入 p ∶列印 s ∶取代 選項: -i∶直接修改讀取的檔案內容,而 ...
sed是一個很強大的文件處理工具,主要是以行為單位進行處理,可以將數據行進行替換、刪除、新增、選取等特定工作
格式:sed [option] [command] [file]
常用命令:
a ∶新增
c ∶取代
d ∶刪除
i ∶插入
p ∶列印
s ∶取代
選項:
-i∶直接修改讀取的檔案內容,而不是由螢幕輸出。
-n∶使用安靜(silent)模式。在一般 sed 的用法中,所有來自 STDIN的資料一般都會被列出到螢幕上。但如果加上 -n 參數後,則只有經過sed 特殊處理的那一行(或者動作)才會被列出來。
1,sed '1d' ghostwu.com d代表刪除 d前面的數字代表刪除第一行,該命令不會修改文件本身
ghostwu@dev:~/linux/sed$ cat -n ghostwu.txt 1 this is ghostwu 2 how are you 3 hod old are you 4 and you 5 fine thank you 6 come with me!!! ghostwu@dev:~/linux/sed$ sed '1d' ghostwu.txt how are you hod old are you and you fine thank you come with me!!! ghostwu@dev:~/linux/sed$ cat ghostwu.txt this is ghostwu how are you hod old are you and you fine thank you come with me!!!
2,刪除最後一行,$代表最後一行
ghostwu@dev:~/linux/sed$ cat ghostwu.txt this is ghostwu how are you hod old are you and you fine thank you come with me!!! ghostwu@dev:~/linux/sed$ sed '$d' ghostwu.txt this is ghostwu how are you hod old are you and you fine thank you
3,刪除第一行到第二行
ghostwu@dev:~/linux/sed$ cat ghostwu.txt this is ghostwu how are you hod old are you and you fine thank you come with me!!! ghostwu@dev:~/linux/sed$ sed '1,2d' ghostwu.txt hod old are you and you fine thank you come with me!!!
4,刪除第二行到最後一行
ghostwu@dev:~/linux/sed$ sed '2,$d' ghostwu.txt this is ghostwu
5,查找包含'you'的行, /you/ 這是正則表達式, p是列印,要跟n結合起來用
ghostwu@dev:~/linux/sed$ cat ghostwu.txt this is ghostwu how are you hod old are you and you fine thank you come with me!!! ghostwu@dev:~/linux/sed$ sed -n '/you/p' ghostwu.txt how are you hod old are you and you fine thank you
6,匹配$符號結尾的行
$符號在正則表達式表示行尾,所以要用\ 轉義
ghostwu@dev:~/linux/sed$ sed -n '/\$/p' ghostwu.txt 50$
7,在第一行後面,增加一行“你好啊"
ghostwu@dev:~/linux/sed$ cat ghostwu.txt this is ghostwu how are you hod old are you and you fine thank you come with me!!! how much do you have 50$ oh, is it? yes ghostwu@dev:~/linux/sed$ sed '1a 你好啊' ghostwu.txt this is ghostwu 你好啊 how are you hod old are you and you fine thank you come with me!!! how much do you have 50$ oh, is it? yes
8,在第一行和第二行的後面,增加一行
ghostwu@dev:~/linux/sed$ sed '1,2a learning how to use sed command' ghostwu.txt this is ghostwu learning how to use sed command how are you learning how to use sed command fine thank you
9,也可以增加多行
ghostwu@dev:~/linux/sed$ cat ghostwu.txt this is ghostwu how are you fine thank you ghostwu@dev:~/linux/sed$ sed '1a 你好啊\n很高興認識你' ghostwu.txt this is ghostwu 你好啊 很高興認識你 how are you fine thank you
10, c為替換操作,數字的意思,跟上面的a一樣,代表行
ghostwu@dev:~/linux/sed$ cat ghostwu.txt this is ghostwu how are you fine thank you ghostwu@dev:~/linux/sed$ sed '1,2c hey guy' ghostwu.txt hey guy fine thank you ghostwu@dev:~/linux/sed$ sed '1c hey guy' ghostwu.txt hey guy how are you fine thank you
11, s:替換匹配到的內容, s:替換開始 /is/ 匹配包含is的行 g:全部替換
ghostwu@dev:~/linux/sed$ cat ghostwu.txt this is ghostwu how are you fine thank you ghostwu@dev:~/linux/sed$ sed 's/is/IS/' ghostwu.txt thIS is ghostwu how are you fine thank you ghostwu@dev:~/linux/sed$ sed 's/is/IS/g' ghostwu.txt thIS IS ghostwu how are you fine thank you ghostwu@dev:~/linux/sed$ cat ghostwu.txt this is ghostwu how are you fine thank you
12、-i :修改,插入文件,會影響文件的內容,在最後一行,插入bye bye
ghostwu@dev:~/linux/sed$ cat ghostwu.txt this is ghostwu how are you fine thank you ghostwu@dev:~/linux/sed$ sed -i '$a bye bye' ghostwu.txt ghostwu@dev:~/linux/sed$ cat ghostwu.txt this is ghostwu how are you fine thank you bye bye
13,在1-3行,每一行的後面都插入一行數字
ghostwu@dev:~/linux/sed$ cat ghostwu.txt this is ghostwu how are you fine thank you bye bye ghostwu@dev:~/linux/sed$ sed -i '1,3a 123457' ghostwu.txt ghostwu@dev:~/linux/sed$ cat ghostwu.txt this is ghostwu 123457 how are you 123457 fine thank you 123457 bye bye