博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
工具sed
阅读量:6833 次
发布时间:2019-06-26

本文共 1981 字,大约阅读时间需要 6 分钟。

工具sed

    sed 
可以分析 Standard Input (STDIN) 
的数据, 
然后将数据经过处理后,再将他输出到 standrad out (STDOUT) 
的一个工具,
语法为:sed [
参数] [
动作],
它的参数很多,
大家可以用man
查看帮助,
但一般常用的也没有几个.
本文仅使用常用的几个参数及动做一些具体实例.

:sed语法

    sed [
参数] [
动作]
1.参数:[-nli]
    -n:
只有经过sed
处理的那几行才会被列出来。
    -l:
显示行号
    -i:
直接修改文件,
这个要小心用
2.动作:[n1[,n2]]function
    n1, n2 :
选择进行动作的行
    functon
如下表:
 
a
新增: 目前的下一行
c
取代:取代 n1,n2 之间的行
d
删除
i
插入: 目前的上一行
p
打印:
 
通常 p 会与参数 sed -n 一起使用
s
取代,通常后面加/s ex: 1,20s/old/new/g
 

:几个实例

1. /etc/group 的内容列出,同时删除第 2~5 行!
[root@localhost ~]# nl /etc/group | sed '2,5d'
     1  root:x:0:root
     6  tty:x:5:
     7  disk:x:6:root
     8  lp:x:7:daemon,lp
     9  mem:x:8:
…………….
2.删除第 3 到最后一行
[root@localhost ~]# nl /etc/group | sed '3,$d'
     1  root:x:0:root
     2  bin:x:1:root,bin,daemon
3.在第二行后新增Hellow god!(或第三行前插入)
[root@localhost ~]# nl /etc/group | sed '2a Hellow god!!'
[root@localhost ~]# nl /etc/group | sed '3i Hellow god!!'   
 1  root:x:0:root
     2  bin:x:1:root,bin,daemon
Hellow god!!
     3  daemon:x:2:root,bin,daemon
4.在第二行后面加入两行字
[root@localhost ~]# nl /etc/group | sed '2a Hellow god \
I love you'
#
注意写法
     1  root:x:0:root
     2  bin:x:1:root,bin,daemon
Hellow god
I love you
     3  daemon:x:2:root,bin,daemon
     4  sys:x:3:root,bin,adm
5.将第2-5行的内容取代成为No 2-5
[root@localhost ~]# nl /etc/group | sed '2,5c NO 2-5'
     1  root:x:0:root
NO 2-5
     6  tty:x:5:
     7  disk:x:6:root
     8  lp:x:7:daemon,lp
     9  mem:x:8:
6.仅显示第 3-5 
[root@localhost ~]# nl /etc/group | sed -n '3,5p'
     3  daemon:x:2:root,bin,daemon
     4  sys:x:3:root,bin,adm
     5  adm:x:4:root,adm,daemon
7使用 ifconfig仅显示 eth0  IP
[root@localhost ~]# ifconfig eth0 | grep 'inet ' | sed 's/^.*addr://g' | sed 's/Bcast.*$//g'
192.168.0.99
关键
是去
去尾
8.删除配置文件的注释行(#开头)
[root@localhost ~]# cat /etc/httpd/conf/httpd.conf | grep -v '^#' | wc -l
349
[root@localhost ~]# cat /etc/httpd/conf/httpd.conf | grep -v '^#' | sed '/^$/d' | wc -l
253
#‘/^$’
表示空行
9.直接在 ~/.bashrc 最后一行加入This is a test
[root@localhost ~]# sed -i '$a # This is a test'  ~/.bashrc
# -i 
参数直接修改后面的文件
# $a
表示最后一行才新增
本文转自 vfast_chenxy 51CTO博客,原文链接:http://blog.51cto.com/chenxy/178741,如需转载请自行联系原作者
你可能感兴趣的文章
DNS故障处理一例(转)
查看>>
Linux 统计当前所有进程使用swap分区的情况
查看>>
spring WebSocket详解
查看>>
cordova入门——cordova环境配置(一)
查看>>
linux下建SVN服务器
查看>>
5月上旬国内域名注册商净增量:万网居首 易名中国第二
查看>>
10月第4周中国五大顶级域名净增约4.2万 美国净减14.5万
查看>>
12月14日中国域名商解析量17强:易名增幅最大
查看>>
全球六大国际域名解析总量突破1.6亿 共净增48万
查看>>
我的友情链接
查看>>
HTML5+CSS3 loading 效果收集
查看>>
雅虎确认网站管理员工具 Site Explorer 将于11月21日关闭
查看>>
优质实用的开源项目推荐
查看>>
我的友情链接
查看>>
Linux服务器安全防护十个方面
查看>>
LVS+Keepalived
查看>>
MaxCompute/DataWorks权限问题排查建议
查看>>
跨域之CORS
查看>>
SoO of EIGRP
查看>>
常用Category
查看>>