码迷,mamicode.com
首页 > 其他好文 > 详细

sed 浅谈

时间:2016-04-21 01:43:47      阅读:177      评论:0      收藏:0      [点我收藏+]

标签:

sed是一个很好的文件处理工具,本身是一个管道命令,主要是以行为单位进行处理,可以将数据行进行替换、删除、新增、选取等特定工作,下面先了解一下sed的用法
sed命令行格式为:
sed [-nefri] ‘function’ 输入文本
常用的参数(nefer)
-n:安静模式 即只输出匹配到的内容
-f; 直接将sed的动作写到档案内
-e:直接在指令模式上进行 sed的动作和编辑
-r:支持正则表达语法
-i:直接修改读取的文件内容
function
a:新增
c:取代
d:删除
i:插入
p:列印
s:取代
Example
1 删除
技术分享
1.1 nl /etc/passwd | sed ‘2,5d’
sed 的动作为‘2,5d’,那个d就是删除 因此2-5行就删除了
1.2 只删除第二行
nl /etc/passwd | sed ‘2d’
技术分享
2d表示删除第二行
1.3 从指定行删除到末尾
nl /etc/passwd | sed ‘4,$d’
技术分享
‘4,$d’表示从第二行删除到行尾
2 添加
2.1 nl /etc/passwd | sed ‘2a I like linux’
技术分享
2.2 在指定行数的上一行添加内容
nl /etc/passwd | sed ‘4i I like linux’
技术分享
a 是在指定行的下一行 i是在指定行的上一行
2.3 添加多行内容
nl /etc/passwd | sed ‘4a i like linux \

I like linux too’
技术分享
每一行都必须加上反斜杠 表示输入未结束
3 以行为单位的输出与替换
3.1 将指定行的内容输出
nl /etc/passwd | sed -e ‘2,5p’
技术分享
技术分享
3.2 取代指定行内容
nl /etc/passwd | sed ‘2,5c NEW COPY’
技术分享

c用指定的内容替换原内容

4 搜索即显示
4.1 搜索指定内容
nl /etc/passwd | sed ‘/root/p’
技术分享

4.2 搜索并删除
nl /etc/passwd | sed ‘/root/d’
技术分享
4.3 搜索并替换
nl /etc/passwd | sed ‘/root/{s/bash/GOOD/;p}’
技术分享
技术分享
将ip前面的部分予以删除
/sbin/ifconfig eth0 | grep ‘inet addr’ | sed ‘s/^.*addr://g’
技术分享
4.4 多点编辑
一个sed 删除/etc/passwd 第三行到末尾 并把bash替换为 ScySky
nl /etc/passwd | sed -e ‘3,$d’ -e ‘s/bash/ScySky/’
技术分享

sed 浅谈

标签:

原文地址:http://blog.csdn.net/bleakred/article/details/51198509

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!