工具sed

简介:

工具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,如需转载请自行联系原作者
目录
相关文章
|
7月前
|
运维 Shell Linux
linux文本处理工具——grep、sed、awk用法
linux文本处理工具——grep、sed、awk用法
95 1
|
Linux 网络安全 Perl
Linux的文本处理工具浅谈-awk sed grep
Linux的文本处理工具浅谈 awk   老大 【功能说明】 用于文本处理的语言(取行,过滤),支持正则 NR代表行数,$n取某一列,$NF最后一列 NR==20,NR==30 从20行到30行 FS竖着切,列的分隔符 RS横着切,行的分隔符 ...
1402 0
|
Shell Perl 自然语言处理
|
Perl 存储 网络安全
|
Perl Linux 机器学习/深度学习
|
Perl 机器学习/深度学习