sed的使用案例
使用sed
操作/etc/passwd,
最好複製乙份
(cp /etc/passwd /tmp),
操作tmp
下的passwd(
其實不用
,因為在一般情況下
sed只是修改了輸出結果
,不會改變檔案本身
,除非要求這麼做).
以行為單位的新增/刪除
要求:將
/etc/passwd
的內容列出並且列印行號
,同時刪除
2~5行.
做法:cat /etc/passwd | sed 『2,5d』
sed的動作是』2,5d』(動作需要放在單引號之間)
nl命令在
linux系統中用來計算檔案中行號。nl 可以將輸出的檔案內容自動的加上行號!其預設的結果與
cat -n
有點不太一樣,
nl 可以將行號做比較多的顯示設計,包括位數與是否自動補齊
0 等等的功能。
只刪除第二行:
nl /etc/passwd | sed 『2d』
刪除第3
行到最後一行
cat -n /etc/passwd | sed 『3,$d』
在第二行後(
就是在第三行
)加上」i am fine」字樣
cat -n /etc/passwd | sed 『2a i am fine』
如果要在第二行前面
nl /etc/passwd | sed 『2i i am fine』
如果是要增加兩行以上,在第二行後面加入兩行字,例如『hello
』與『how are you』
nl /etc/passwd | sed 『2a hello\
>how are you』
每一行之間都必須要以反斜槓(\)
來進行新行的新增
,所以上面的例子
,我們可以發現在第一行的最後面就有
\ 存在。
(再輸入的是會需要注意
,單引號不要一起輸完).
以行為單位的替換與現實
將第2-5
行的內容替換成」hahaha」
nl /etc/passwd | sed 『2,5c hahaha』
通過這個方法,
我們就可以替換整行資料了.
僅列出/etc/passwd
檔案的5-7行
cat -n /etc/passwd | sed -n 『5,7p』
可以透過這個 sed
的以行為單位的顯示功能, 就能夠將某乙個檔案內的某些行號選擇出來顯示。
資料的搜尋與顯示
搜尋/etc/passwd
中有關/root
關鍵字的行
nl /etc/passwd | sed 『/root/p』
思考:為什麼會輸出所有行的情況?
使用-n
的時候將只列印包含模板的行。
nl /etc/passwd | sed -n 『/root/p』
資料的搜尋與刪除
刪除/etc/passwd
所有包含
root的行,
其他行輸出
nl /etc/passwd | sed 『/root/d』
資料的搜尋並執行命令
搜尋/etc/passwd,
找到root
對應的行,執行後面花括號中的一組命令,每個命令之間用分號分隔,這裡把
bash
替換為blueshell
,再輸出這行:
nl /etc/passwd | sed -n '/root/'
如果只替換/etc/passwd
的第乙個
bash
關鍵字為
blueshell
,就退出
nl /etc/passwd | sed -n '/bash/' 1
最後的q
是退出。
資料的搜尋並替換
除了整行的處理模式之外,sed
還可以用行為單位進行部分資料的搜尋並替換
.基本上
sed的搜尋與替換與
vi相當的類似.
sed 『s/要被取代的字串
/新的字串
/g』先通過/sbin/ifconfig eth0
檢視本機的
ip位址
,我的是
(192.168.199.5)
將ip前面部分予以刪除
/sbin/ifconfig eth0 | grep 'inet addr'|sed 's/^.*addr://g'
將ip後面部分予以刪除
/sbin/ifconfig eth0 | grep 'inet addr'|sed 's/^.*addr://g' | sed 's/bcast.*$//g'
即可得到ip
多點編輯
一條sed命令,刪除
/etc/passwd
第三行到末尾的資料,並把
bash
替換成hahaha.
nl /etc/passwd | sed -e 『3,$d』 -e 『s/bash/hahaha/g』
注意:每天命令前面都加入了
-e選項
直接修改檔案內容
最好別使用,
如果使用需要加入乙個
-i選項
例如在最後一行插入hahaha
nl /etc/passwd | sed -i 『$i hahaha』
學習Python 第十三天
二叉樹 一,名詞 根邊 樹葉 葉子 沒有兒子 兄弟 具有相同父親的節點 祖父和孫子 路徑路徑的長 深度 從根到該點 高 從該點到葉子 祖先 後裔 真祖先 真後裔 二,樹的實現 class treenode def init self,data,firstchild,nextsibling self....
Java學習第十三天
13.01 常見物件 stringbuffer類的概述 b stringbuffer和string的區別 13.02 常見物件 stringbuffer類的構造方法 b stringbuffer的方法 c 案例演示 13.03 常見物件 stringbuffer的新增功能 public string...
Linux 第十三天學習
一 服務程式apache ilnux系統的配置檔案 服務目錄 etc httpd 主配置檔案 etc httpd conf httpd.conf 資料目錄 var www html 訪問日誌 var log httpd access log 錯誤日誌 var log httpd error log ...