sed-i命令常⽤⽅法总结
sed⽤法
Usage: sed [OPTION]... {script-only-if-no-other-script} [input-file]...
-i[SUFFIX]
edit files in place (makes backup if SUFFIX supplied)
1,删除指定⾏:
sed -i 'Nd' filename 【N 为⾏数】
特别的,删除最后⼀⾏为:
sed -i '$d' filename 【$ 代表的是最后⼀⾏】
【提⽰】:
cat -n filename //可以从1开始输出显⽰⾏号
grep -n "指定⾏内容" filename //显⽰指定⾏⾏号
2,插⼊到某⾏
①知道该⾏⾏号
sed -i 'Ni 要添加内容' filename //第N⾏插⼊要添加的内容,原来该⾏的内容后移
②知道该⾏内容:
插⼊到某⾏上⾯
sed -i '/定位字符串/i 插⼊字符串' filename
插⼊到某⾏下⾯正则匹配多行
sed -i '/定位字符串/a 插⼊字符串' filename
补充,⽂末增加⼀⾏可使⽤如下语句:
echo "\n插⼊字符串" >> filename
3,替换某字符串
①知道该⾏⾏号
sed -i 'Nc 替换内容' filename //替换第N⾏内容
②知道该⾏内容
sed -i 's/原字符串/替换字符串/' filename
sed -i 's/原字符串/替换字符串/g' filename
说明:
s///: 从每⼀⾏的⾏⾸开始,匹配到第⼀个符合的字段,就会跳到下⼀⾏(同⼀⾏中可能有多个匹配字段)
s///g:表⽰全局替换,匹配每⼀⾏从⾏⾸到⾏尾的所有字符
4,替换字符串中部分内容,其实是3的升华⽤法
sed -i 's/^\(字符串段1\).*\(字符串段2\)$/\1放⼊替换段1与段2之间的内容\2/' filename
解读:
^是正则表达式匹配字符串开始位置
$是正则表达式匹配字符串结束位置
\1引⽤了第⼀个()匹配到的内容
\2引⽤了第⼆个()匹配到的内容
.*为两对括号中间的所有内容
5,指定⾏添加删除注释
添加注释
加【#】:
sed -i 's/^指定⾏字符串/#&/g' filename
加【//】:
sed -i 's/^指定⾏字符串/\/\/&/g' filename (//由于有特殊含义,前⾯加\去掉特殊含义)
举例:
> on property:sys.boot_completed=1
> start gps_upgrade
> root:/vendor/etc/init/hw # sed -i 's/^.*start gps.*/#&/' (字符串不⼀定要写完整⾏,能唯⼀标识这⼀⾏即可。符合条件的字符串会全部都被添加上注释) > root:/vendor/etc/init/hw #
> root:/vendor/etc/init/hw # p.rc
> on property:sys.boot_completed=1
> # start gps_upgrade
删除注释
sed -i 's/^#\(指定⾏字符串\)/\1/g' filename
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论