如果有乙個abc.txt檔案,內容是:
aaa如果要刪除ddd,那麼指令碼可以這樣寫:bbbbatbusinesstype, insideid--) online;
insideid--) online
cccddd
eeefff
sed -i '/ddd/d' abc.txt
如果刪除的是乙個變數的值,假如變數是var,應該寫成:
sed -i '/'"$var"'/d' abc.txt
至於grep -v aaa abc.txt
這個方法,是無法將修改的結果寫入abc.txt中去的。?
[asp@bj-cp-7f-106-36 result]$
cat
11371_mobile_20110425.csv
20110425,北京,北京,13661189983
20110425,北京,北京,15810705979
wapsjbbi_101>
wapsjbbi_101>spooloff;
[asp@bj-cp-7f-106-36 result]$
sed
-i
'/wapsjbbi_101>/d'
11371_mobile_20110425.csv
[asp@bj-cp-7f-106-36 result]$
cat
11371_mobile_20110425.csv
20110425,北京,北京,13661189983
20110425,北京,北京,15810705979
2行都刪了
刪除:d命令
$ sed '2d' example-----刪除example檔案的第二行。
$ sed '2,$d' example-----刪除example檔案的第二行到末尾所有行。
$ sed '$d' example-----刪除example檔案的最後一行。
$ sed '/test/'d example-----刪除example檔案所有包含test的行。
在看看以前我常寫的sed 's/|/,/g' aaa.txt>bbb.txt 這個的意思就是把aaa.txt檔案中所有字串|都換成,這是怎麼表示的呢?s代表字串,g表示行內全面替換。
替換:s命令
$ sed 's/test/mytest/g' example
-----在整行範圍內把test替換為mytest。如果沒有g標記,則只有每行第乙個匹配的test被替換成mytest。
$ sed -n 's/^test/mytest/p' example
-----(-n)選項和p標誌一起使用表示只列印那些發生替換的行。也就是說,如果某一行開頭的test被替換成mytest,就列印它。
$ sed 's/^192.168.0.1/&localhost/' example
-----&符號表示替換換字串中被找到的部份。所有以192.168.0.1開頭的行都會被替換成它自已加 localhost,變成192.168.0.1localhost。
$ sed -n 's/able/\1rs/p' example
-----love被標記為1,所有loveable會被替換成lovers,而且替換的行會被列印出來。
$ sed 's#10#100#g' example
-----不論什麼字元,緊跟著s命令的都被認為是新的分隔符,所以,「#」在這裡是分隔符,代替了預設的「/」分隔符。表示把所有10替換成100。
cat init.ora | grep -v ^#|grep –v ^* > initprod.ora
Linux 刪除和替換檔案中某一行的方法
如果有乙個abc.txt檔案,內容是 aaabbb batbusinesstype,insideid online insideid online cccddd eeefff 如果要刪除ddd,那麼指令碼可以這樣寫 sed i ddd d abc.txt 如果刪除的是乙個變數的值,假如變數是var,...
Linux 刪除和替換檔案中某一行的方法 推薦
如果有乙個abc.txt檔案,內容是 aaabbbbatbusinesstype,insideid online insideid online cccddd eeefff 如果要刪除ddd,那麼指令碼可以這樣寫 sed i ddd d abc.txt 如果刪除的是乙個變數的值,假如變數是var,應...
Shell 指令碼逐行替換檔案中的某一引數值
替換檔案中的某個引數,通常使用linux文字處理工具,awk sed 和 grep,可根據實際需要組合使用命令。bin bash 獲取檔案,通過指令碼引數引入 file data test.log 獲取檔案的行數 log line awk f file 定義迴圈規則,檔案有多少行,就迴圈多少次 fo...