1、sed命令html
語法:java
sed [OPTION]... {script-only-if-no-other-script} [input-file]...
sed命令詳解:linux
選項與參數: -n :使用安靜(silent)模式。在通常 sed 的用法中,全部來自 STDIN 的數據通常都會被列出到終端上。但若是加上 -n 參數後,則只有通過sed 特殊處理的那一行(或者動做)纔會被列出來。 -e :直接在命令列模式上進行 sed 的動做編輯; -f :直接將 sed 的動做寫在一個文件內, -f filename 則能夠運行 filename 內的 sed 動做; -r :sed 的動做支持的是延伸型正規表示法的語法。(默認是基礎正規表示法語法) -i :直接修改讀取的文件內容,而不是輸出到終端。 動做說明: [n1[,n2]]function n1, n2 :不見得會存在,通常表明『選擇進行動做的行數』,舉例來講,若是個人動做是須要在 10 到 20 行之間進行的,則[10,20[動做行爲]]function: a :新增, a 的後面能夠接字串,而這些字串會在新的一行出現(目前的下一行)~ c :取代, c 的後面能夠接字串,這些字串能夠取代 n1,n2 之間的行! d :刪除,由於是刪除啊,因此 d 後面一般不接任何咚咚; i :插入, i 的後面能夠接字串,而這些字串會在新的一行出現(目前的上一行); p :列印,亦即將某個選擇的數據印出。一般 p 會與參數 sed -n 一塊兒運行~ s :取代,能夠直接進行取代的工做哩!一般這個 s 的動做能夠搭配正規表示法!例如 1,20s/old/new/g 就是啦!
示例:shell
sed '2,5d' #刪除第2-5行,使用nl命令能夠查看文件的行號 sed '2d' #刪除第二行 sed '3,$d' #刪除第三至最後一行 sed '2a drink tea' #在第二行後(亦便是加在第三行)加上『drink tea』字樣! sed '2i drink tea' #在第二行前加上『drink tea』字樣! sed '2a Drink tea or ......\ #增長兩行以上,在第二行後面加入兩行字,例如『Drink tea or .....』與『drink beer?』。每一行的最後加上\表示輸入沒有結束,而且換行了。 sed '2,5c No 2-5 number' #第2-5行的內容取代成爲『No 2-5 number』 sed -n '5,7p' #列出 /etc/passwd 文件內的第 5-7 行
來源:http://www.jb51.net/LINUXjishu/144593.htmlspa
2、linux中{}和()執行命令的方式 .net
1.{ }形式code
{ echo "User report for `date`.";who; } | pr #pr:convert text files for printing
應該注意的:左括號「{」後面應有一個空格;右括號「}」以前應有一個分號(;)。htm
花括號也能夠包含若干單獨佔一行的命令:進程
{ echo "User report for `date`."ip
echo "There are `who|wc -l` users logged in."
who|sort; } | pr
花括號中的命令表必須用分號或者換行符終止。
2.( )形式
(echo "User report for `date`.";who) | pr
如上所示,在用圓括號括起成組命令時,左括號後沒必要有空格,右括號以前也不需加上分號。
二者的區別:用花括號括起來的成組命令只是在本shell內執行命令表,不產生新的進程;而用圓括號括起來的成組命令式在新的子shell內執行,要創建新的子進程,不會改變父shell的變量值及工做目錄。
--------------------