sed小结

sed [-nefri] [[n1,[n2]] function]
-n: 使用安静模式。只将经sed处理的内容显示在屏幕上 
-e: 直接在命令行模式上进行sed的动作编辑
-f: 直接将sed的动作写在一个档案内,-f filename则可以执行filename内的sed动作
-r: 支持扩展正则表示式语法
-i: 直接修改文件,而不再屏幕显示修改结果

n1,n2: 在n1~n2行进行操作

function:
a:新增,当前行后,新增一行,将a后面的字符串附加到该行
c: 替换,使用c后面的字符串替换n1~n2行
d: 删除,d后面一般不放任何对象
i: 插入,当前行前,新增一行,将i后面的字符串插入该行
p: 打印,打印选择的数据,常与“-n”一起使用
s: 替换,1,8s/old/new/g

eg:
# 删除第2~5行
nl /etc/passwd | head | sed '2,5d'

# 第二行后增加一行
nl /etc/passwd | head | sed '2a xxxxxx'

# 插入多行,csh下,yyyy每行后被追加
nl /etc/passwd | head | sed '2a xxxxxx \
> yyyyyy'

# 整行替换3~6行
nl /etc/passwd | head | sed '3,6c replace line 3 to 6'

# 只显示5~7行
nl /etc/passwd | head | sed -n '5,7p'

# 获取网卡eth0的IP地址
ifconfig eth0 | grep 'inet addr' | sed 's/.*addr://' | sed 's/Bcast.*//'

# 将行末"."修改为"!",直接修改文件内容,不在屏幕显示
sed -i 's/\.$/\!/g' myfile

猜你喜欢

转载自elihe2011.iteye.com/blog/1901272
sed
今日推荐