sed的使用

本文详细介绍了SED命令的基础用法及高级技巧,包括查找、替换、添加和删除文本行等操作,并通过多个实例展示了如何利用SED来高效地处理文本文件。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

可以参考以下: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

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值