範例說明 :
透過 sed 將 /etc/pure-ftpd/pure-ftpd.conf 中含有 Anonymous 字串的每一行都列印出來, 並且濾掉註解
行 (#開頭) 與空白行 :
--------------------------------
linux-tl0r:~ # cat /etc/pure-ftpd/pure-ftpd.conf | grep 'Anonymous' | sed 's/^#.*//g' <將有 'Anonymous' 字串行 grep 出來後, 透過 sed 濾掉 註解行>
AnonymousOnly no
NoAnonymous no
AnonymousCanCreateDirs yes
AllowAnonymousFXP no
<有空白行出現>
AnonymousCantUpload no
linux-tl0r:~ # cat /etc/pure-ftpd/pure-ftpd.conf | grep 'Anonymous' | sed 's/^#.*//g' \ <使用 '\' 換行編輯>
> | sed '/^$/d'
AnonymousOnly no
NoAnonymous no
AnonymousCanCreateDirs yes
AllowAnonymousFXP no
AnonymousCantUpload no <成功濾出含有 'Anonymous' 字串的行數並排除註解行與空白行!!!>
--------------------------------
example:
示範過一個刪除空列的命令:
/^$/d
sed 字串編輯器
行 (#開頭) 與空白行 :
--------------------------------
linux-tl0r:~ # cat /etc/pure-ftpd/pure-ftpd.conf | grep 'Anonymous' | sed 's/^#.*//g' <將有 'Anonymous' 字串行 grep 出來後, 透過 sed 濾掉 註解行>
AnonymousOnly no
NoAnonymous no
AnonymousCanCreateDirs yes
AllowAnonymousFXP no
<有空白行出現>
AnonymousCantUpload no
linux-tl0r:~ # cat /etc/pure-ftpd/pure-ftpd.conf | grep 'Anonymous' | sed 's/^#.*//g' \ <使用 '\' 換行編輯>
> | sed '/^$/d'
AnonymousOnly no
NoAnonymous no
AnonymousCanCreateDirs yes
AllowAnonymousFXP no
AnonymousCantUpload no <成功濾出含有 'Anonymous' 字串的行數並排除註解行與空白行!!!>
--------------------------------
example:
示範過一個刪除空列的命令:
/^$/d
sed 字串編輯器
這部份要先偷懶一下, 因為之前已經寫過一些 sed 的簡易說明,這裡直接把它拿過來, 同時加上一些補充.
- 將 filename 檔案內的 Giga 字串取代成 GigaRama
sed s/Giga/GigaRama/ filename
但是我們這樣只能做 stdout , 若是要把 file1 裡面的 Giga
都取代成 GigaRama 的話, 我們可以這樣做 :
cat file1 | sed s/Giga/GigaRama/ > file2
- 將 filename 檔案內的 xfish 字串那一行刪除
sed /xfish/d filename
同樣, 若是要將修改過的檔案變成一個新檔案, 可以這樣做 :
cat file1 | sed /xfish/d > file2
- 指定哪一行,將之刪除
sed '4d' filename
這裡是指定第四行 刪除
- 將filename的第一行到第幾行,將之刪除
sed '1,4d' filename
這裡是指定第一行到第四行 刪除
- 將filename的第一行到第五行印出
sed -n 1,5p filename
- 將 file 檔案內的出現 xfish 字串的那一行單獨寫到 file2 內
sed -n '/xfish/w file2' file
- 萬用字元的使用,將 file 檔案內的 xfis? 哪一行寫到 file2 內
sed '/xfis./w file2' file
- 萬用字串的使用,將 file 檔案內的 xfis* 哪一行寫到 file2 內
sed '/xfis*/w file2' file
- 選定字元的使用,將 file 檔案內的 xfis[abcd] 哪一行寫到 file2 內
sed '/xfis[abcd]/w file2' file
- 特別符號的取消,利用 /
sed s/\/\/ file
- 一行的起頭的取代,將 file 檔案的每一行起頭都加上 Hi..
sed s/^/Hi.. / file
- 一行的結尾的取代,將 file 檔案的每一行結尾都加上 Hi..
sed s/$/Hi.. / file
- 多重條件的指定,利用 -e 選項
sed -e 's/Giga/GigaRama/' -e 's/^/Hi../' file
沒有留言:
張貼留言