#全文搜索替换
sed -i "s/要搜索字串/替换成的字串/g" 文件名
或者
sed -i s#要搜索字串#替换成的字串#g 文件名
#全文删除特定字串
sed -i "/要删的内容/d" 文件名
#全文删空行
sed -i "/^$/d" 文件名
#全文删除没有任何内容的空行(就是连空格都没按直接回车的那种,比如一顿回车出来的那种空行。用到了正则表达,^1表示以1开头,3$表示以3结尾,若只有^$就是专门表示那种连空格都没有的回车行)
sed -i "/^$/d" 文件名
#删除全文中空格组成的行和没有空格直接回车的空行
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' 文件名