sed基本用法
sed的常用命令
sed的條件工具
[root@svr5 ~]# sed -n 'p' a.txt //輸出所有行,等同於cat a.txt
[root@svr5 ~]# sed -n '4p' a.txt //輸出第4行
[root@svr5 ~]# sed -n '4,7p' a.txt //輸出第4~7行
[root@svr5 ~]# sed -n '4,+10p' a.txt //輸出第4行及其後的10行內容
[root@svr5 ~]# sed -n '/^bin/p' a.txt //輸出以bin開頭的行
[root@svr5 ~]# sed -n '$=' a.txt //輸出檔案的行數
#看看sed工具的d指令案例集錦(自己提前生成乙個a.txt檔案)
[root@svr5 ~]# sed '3,5d' a.txt //刪除第3~5行
[root@svr5 ~]# sed '/xml/d' a.txt //刪除所有包含xml的行
[root@svr5 ~]# sed '/xml/!d' a.txt //刪除不包含xml的行,!符號表示取反
[root@svr5 ~]# sed '/^install/d' a.txt //刪除以install開頭的行
[root@svr5 ~]# sed '$d' a.txt //刪除檔案的最後一行
[root@svr5 ~]# sed '/^$/d' a.txt //刪除所有空行
#sed工具的s指令案例集錦(自己提前生成乙個a.txt檔案)
#注意:替換操作的分隔「/」可改用其他字元,如#、&等,便於修改檔案路徑
[root@svr5 ~]# sed 's/xml/xml/' a.txt
//將每行中第乙個xml替換為xml
[root@svr5 ~]# sed 's/xml/xml/3' a.txt
//將每行中的第3個xml替換為xml
[root@svr5 ~]# sed 's/xml/xml/g' a.txt
//將所有的xml都替換為xml
[root@svr5 ~]# sed 's/xml//g' a.txt
//將所有的xml都刪除(替換為空串)
[root@svr5 ~]# sed 's#/bin/bash#/sbin/sh#' a.txt
//將/bin/bash替換為/sbin/sh
[root@svr5 ~]# sed '4,7s/^/#/' a.txt
//將第4~7行注釋掉(行首加#號)
[root@svr5 ~]# sed 's/^#an/an/' a.txt
//解除以#an開頭的行的注釋(去除行首的#號)
hello the world
ni hao ma beijing
#本小節的操作使用nssw.txt作為測試檔案。
[root@svr5 ~]# sed 's/.//2 ; s/.$//' nssw.txt
[root@svr5 ~]# sed -r 's/^(.)(.*)(.)$/\3\2\1/' nssw.txt
因原檔案內沒有數字,行首也沒有空格,這裡稍作做一點處理,生成乙個新測試檔案:
[root@svr5 ~]# sed 's/[0-9]//' nssw.txt
以nssw2.txt檔案為例,刪除所有數字、行首空格的操作如下:
[root@svr5 ~]# sed -r 's/[0-9]//g;s/^( )+//' nssw2.txt
為檔案中每個大寫字母新增括號
[root@svr5 ~]# sed -r 's/([a-z])/[\1]/g' nssw.txt
多行文字操作
寫乙個指令碼:
思路如下:
#!/bin/bash
a=$(sed -n '/bash$/s/:.*//p' /etc/passwd)
for i in $a
do
pass1=$(grep $i /etc/shadow)
pass2=$(pass1#*.)
pass3=$(pass2%%.*)
echo "$i ---> $pass3"
done
總結知識點:
sed [選項] 『條件指令』 檔案
sed高階程式設計(一)
d 刪除多行組中的單隔行。p 列印多行組中的單隔行。next命令,小寫n命令使sed移動到資料流中文字的下一行。cat data the first meeting of the linux system administrator s group will be held on tuesday.a...
shell程式設計 sed的選項
sed 引數 partern commond file 標準輸出 sed sed 引數 partern commond n 使用安靜 silent 模式。在一般 sed 的用法中,所有來自 stdin 的資料一般都會被列出到終端上。但如果加上 n 引數後,則只有經過sed 特殊處理的那一行 或者動作...
shell指令碼程式設計之sed
sed 選項 指令 動作 檔案 n 使用安靜 silent 模式。在一般 sed 的用法中,所有來自 stdin 的資料一般都會被列出到終端上。但如果加上 n 引數後,則只有經過sed 特殊處理的那一行 或者動作 才會被列出來。f 直接將 sed 的動作寫在乙個檔案內,f filename 則可以執...