#全文搜尋替換
sed -i "s/要搜尋字串/替換成的字串/g" 檔案名
或者
sed -i s#要搜尋字串#替換成的字串#g 檔案名
#全文删除特定字串
sed -i "/要删的内容/d" 檔案名
#全文删空行
sed -i "/^$/d" 檔案名
#全文删除沒有任何内容的空行(就是連空格都沒按直接回車的那種,比如一頓回車出來的那種空行。用到了正則表達,^1表示以1開頭,3$表示以3結尾,若隻有^$就是專門表示那種連空格都沒有的回車行)
#删除全文中空格組成的行和沒有空格直接回車的空行
sed -i "/^[[:space:]]*$/d" 檔案名
或sed -i "/^ */"d 檔案名 (*前有一個空格)
#在檔案中找到所有包含then的行,并在比對行的下一行加上echo
sed -i "/then/aecho" 檔案名
#在文中第5行的最前面加個井号
sed -i "5s/^/#/" 檔案名
#隻保留文中3、7、9、11這四行,其他行全删除
sed -i -n -e "3p" -e "7p" -e "9p" -e "11p" 檔案名
#隻保留文中包含linux、centos、redhat的行,其餘行全不要
sed -i -n -r '/linux|centos|redhat/p' 檔案名
#在檔案中很多行都出現了“else”這個詞,在其中第2行那個else的下一行追加“exit”字串。用grep -n 、cat -n、awk '{print NR}'還有nl指令都可給檔案加上行号的,沒有nl指令的yum裝一下coreutils包。
sed -i "`grep -n else`a exit" 檔案名
或
sed -i "`awk '/else/{print NR}' |awk 'NR==2{print}'`a exit" 檔案名
sed -i "`nl -b a 1.txt |grep else |sed -n "2p" |awk '{print $1}'`a exit" 檔案名
注意nl不加-b a的話,會把空行自動空過去不加行号但是sed不會,是以檔案中有空行的話,nl加标号配合sed編輯就會出現誤差了!
#如果需要在sed中引用變量,就用單引号把變量包上。如将檔案中$B這行的第二次出現的the改成THE。
sed -i ''$B's/the/THE/2' 檔案名
本文轉自 朱科強 51CTO部落格,原文連結:http://blog.51cto.com/zhukeqiang/1695005,如需轉載請自行聯系原作者