您的当前位置:首页正文

sed-i命令常用方法总结

来源:化拓教育网
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/原字符串/替换字符串/' filenamesed -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.*/#&/' init.tmp.rc (字符串不⼀定要写完整⾏,能唯⼀标识这⼀⾏即可。符合条件的字符串会全部都被添加上注释) > root:/vendor/etc/init/hw #

> root:/vendor/etc/init/hw # cat init.tmp.rc > on property:sys.boot_completed=1 > # start gps_upgrade

删除注释

sed -i 's/^#\\(指定⾏字符串\\)/\\1/g' filename

因篇幅问题不能全部显示,请点此查看更多更全内容