Sed是用來處理流字串的命令
sed介紹:
sed -- stream editor 對文件或者某種輸入字串進行處理。 根據我使用sed和awk這兩個命令,個人感覺sed是專門用來處理文本行的,awk的話可以對sed做不到的地方進行擴展,如果有錯誤的地方謝謝指正。
sed語法結構:
sed [-Ealn] command [file ...] sed [-Ealn] [-e command] [-f command_file] [-i extension] [file ...]
sed參數和結構:
-e 用來使用多個命令的參數
-n 不輸出任何東西除非找到需要輸出的東西
-f 用來跟文件類型的腳本
-v 查看版本
-h –hlep
-p 通過正則標準化輸出
在 ‘/[addr1]/[addr2]’[addr1] 可以是s 替換,d 刪除等
[addr2]可以爲
-r read 讀取
-w write 寫到某個文件
-i insert 插入
-I Ignore 忽視大小寫
-c change a line 改變一行
-g global 全部
sed例子:
- s用來替換字符串
☁ Ch02 [master] ⚡ sed s/Mon/re_Mon/g sedTest
re_Monday
re_Monday
Tuesday
Wed
Thu
Fri
Jason
- -n和-p的使用
☁ Ch02 [master] ⚡ cat sedTest
Monday
Monday
Tuesday
Wed
Thu
Fri
Jason
☁ Ch02 [master] ⚡ sed /Mon/p sedTest
Monday
Monday
Monday
Monday
Tuesday
Wed
Thu
Fri
Jason
☁ Ch02 [master] ⚡ sed -n /Mon/p sedTest
Monday
Monday
☁ Ch02 [master] ⚡ sed 2,5p sedTest
Monday
Monday
Monday
Tuesday
Tuesday
Wed
Wed
Thu
Thu
Fri
Jason
☁ Ch02 [master] ⚡ sed -n 2,5p sedTest
Monday
Tuesday
Wed
Thu
這個能匹配正則表達式,通過正則表達式來顯示文件的內容
- -d刪除
☁ Ch02 [master] ⚡ sed 1,2d sedTest
Tuesday
Wed
Thu
Fri
Jason
☁ Ch02 [master] ⚡ sed /Monday/d sedTest
Tuesday
Wed
Thu
Fri
Jason
-e多條命令
☁ Ch02 [master] ⚡ sed -n -e 2,4p -e 5,6p sedTest
Monday
Tuesday
Wed
Thu
Fri