1,sed的作用和工作原理:
作用:處理文件內容(增刪改查),學了sed之後可以對較大的文件或者大批量的文件進行高效率的處理。
工作原理:sed讀取一行,首先將這行放入緩存,然後纔對這行進行處理,處理完後,將緩存區的內容發送到終端,其中sed對應的緩存區空間稱爲:模式空間。
2,格式:
sed [選項] [sed命令] [輸入文件]
注意事項:
1,他們之間都有空格,每個元素至少一個空格
2,sed命令是sed軟件的內置命令選項(稱爲sed命令選項是爲了和前面的選項區分),它可以是單個也可以是多個sed命令的組合 (後面我們可以學到用-e選項可以實現組合)
3,sed命令兩邊用'' sed命令前是限制條件。
選項 | 解釋說明(帶*的爲重點) |
-n | 取消默認的sed軟件的輸出,常與sed命令的P連用* |
-e |
一行命令語句可以執行多條sed命令 * |
-r ruguler | 使用擴展正則表達式,默認情況sed只識別基本正則表達式 * |
-i inside |
直接修改文件內容,而不是輸出到終端,如果不使用-i選項sed軟件只是修改在內存中的數據,並不會影響磁盤上的文件* 所以seq命令,不使用-i的話,默認不會修改文件內容 |
sed命令 | 解釋說明(帶*的爲重點) |
a append | 追加,在指定行後再追加一行或多行文本* |
i insert | 插入,在指定行前再插入一行或多行文本* |
c chenge | 取代,取代指定行 |
d delete | 刪除指定的行 |
p print | 打印模式空間內容,通常p會與選項-n一起使用* |
特殊符號 | 解釋說明 |
! 就像一個sed命令,放在限制條件後面 | 對指定行以外的所有行應用命令 |
例子:
a:sed '2a cjk' nidaye
i:sed '3i cjk' nidaye
補充:同時增加多行用\n
sed '2a nimei\nimei\nimei' test
刪
匹配的的行:刪除以root開頭的行 #sed '/^root/d' test
指定的行:刪除2到5行以外的行sed '2,5d' test
取反:sed '2,5!d' test
改(替換)
例子:將5到9行內容替換爲 cjk
sed '5,9c cjk' test
補充文本替換
文本替換
1,選項
這裏用到的sed命令,選項:
“s”:單獨使用-->將每一行中第一處匹配的字符串進行替換==>sed命令
“g”:每一行進行全部替換-->sed命令s的替換標誌之一(全局替換),非sed命令。
“-i”:修改文件內容-->sed軟件的選項,注意和sed命令i區別。
2,格式
sed -i ' s/目標內容/替換內容/g' filename
例子:
將/etc/passwd 中的root 改成ken
sed -i 's/root/ken/g' /etc/passwd
補充
sed -i '1s/root/ken/g' /etc/passwd
查
查找指定的字符串
打印指定行,第4行。
sed -n '4p' test
例子,顯示/etc/passwd中包含root的行(顯示(打印)模式空間中的內容)
方法1 sed -n '/root/p ' /etc/passwd
補充:-e多點操作
例子:去掉文件中的註釋行和空白行
sed -e '/^#/d' -e '/^$/d' /etc/passwd