admin 管理员组文章数量: 887031
sed
/
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.*/#&/' 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
本文标签: sed
版权声明:本文标题:sed 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.freenas.com.cn/jishu/1731009462h1423818.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论