可以参考以下:https://www.runoob.com/linux/linux-comm-sed.html
sed [-n显示修改的内容,-e可以使用多个语句,-i在文件修改并保存] 命令 文件。
命令:一般用''单引号写命令,用到SHELL脚本的时候才用""双引号
/查找的意思。p打印出来。^表示开头,$表示结尾
sed -n "/^interface=/p" myfile ;在myfile中查找interface=的行,第一个/表示查找;^表示以什么开头;/p表示打印出来,-n表示只打印修改的行
a\在某某之后添加一行,\后面添加内容。
i\在某某之前添加一行
sed '$a'"\newVarlue=$2"inputfile.txt > outfile.txt ##注意使用'$a'只有用''才识别$a和有些sed支持的命令'!d',而用""才可以识别shell脚本。表示最后一行下面添加一行,内容是:newVarlue=$2.
sed -i "/.*oldLine$/i\newLine" inputfile.txt #-i表示在inputfile.txt文件中直接操作,i表示在oldLine为尾的行前面添加一行。
d删除:删除network={到}的内容,只有''才认识!d
sed '/network={/,/}/{//!d}' inputfile.txt > outfile.txt #/xxx/查找,,表示从哪里到哪里,{}表示得到的内容再进行命令,{}里面的//表示//的内容,!d表示选择内容不删除而其他删除。
参考http://bbs.chinaunix.net/thread-4090758-1-1.html
sed '/^a/,/^b/{/^a\|b/!d}' data2 这个表示找到a开头到b开头行,而a开头行或者b开头行不删除,就是删除a行到b行之间的内容。|符号的使用也有了。
sed -i '/^libclean/{n;s/rm -f \*\.map/rm -rf \*\.map/;}' ; /^libclean查找改行,{}再处理,"n;"对下面一行进行操作,s/old/new/g替换,/g全部操作,\去掉*和.的特殊运用!
s///查找并替换:.*表示多个任意字符,*表示一个任何字符,.表示一个任意字符
sed "s/^myValue.*$/myValue=$2/g" inputfile.txt > outfile.txt ##/^myValue.*$查找到以myValue开头的匹配到本行末尾,替换为myValue=$2,g表示全局操作。
参考http://bbs.chinaunix.net/thread-1406834-1-1.html
####;表示一条语句结束。//表示查找,因为/有特殊意思,因此\可以取消/的特殊意思。*也是特殊字符。.也是特殊字符
sed "/^\/\* <B37>\*\//,/^\/\* <\/B37>\*\//d;/^\/\* <O37>\*\//,/^\/\* <\/O37>\*\//{s/\/\///}" data3
sed -e '/^\/\* <B37>\*\//,/^\/\* <\/B37>\*\//{//!d};/^\/\* <O37>\*\//,/^\/\* <\/O37>\*\//{s/\/\///}' data3
如果替换字符串存在‘/’我们就可以不用'/'而用':'分割:
其中:$CGI_RUN_PATH=/home/lxin/workdir/testdir/embedLxin/usrCode/src_cgi_lighttp-work
替换字符串没有':'这一这样用
sed -i "s:^var.server_root.*$:var.server_root = \"$CGI_RUN_PATH/workdir/www\":g" $LIGHTTPD_CONFIG_FILE