美文网首页
7月24日 系统正则符号和sed

7月24日 系统正则符号和sed

作者: Mashirooooo | 来源:发表于2019-07-24 20:54 被阅读0次

sed命令

修改文件内容,对文件行进行操作
配置文件,文本文件

语法结构

sed [参数] ‘条件 指令’ 文件信息

[root@oldboy63-libo oldboy]$ sed -n '/disabled/p' /etc/selinux/config 
#     disabled - No SELinux policy is loaded.
SELINUX=disabled
sed操作方式
在文中添加信息
将文件中指定信息删除
替换修改文件内容
查找相应内容信息

查看文件信息

按指定行查询内容
[root@oldboy63-libo oldboy]$ cat person.txt 
101,oldboy,CEO
102,zhaoyao,CTO
103,Alex,COO
104,yy,CFO
105,feixue,CIO
============================================================================
[root@oldboy63-libo oldboy]$ sed -n '3p' person.txt 
103,Alex,COO
============================================================================
[root@oldboy63-libo oldboy]$ sed -n '2p;5p' person.txt 
102,zhaoyao,CTO
105,feixue,CIO
============================================================================
[root@oldboy63-libo oldboy]$ sed -n '2,5p' person.txt 
102,zhaoyao,CTO
103,Alex,COO
104,yy,CFO
105,feixue,CIO
按指定内容进行过滤
[root@oldboy63-libo oldboy]$ cat person.txt 
101,oldboy,CEO
102,zhaoyao,CTO
103,Alex,COO
104,yy,CFO
105,feixue,CIO
[root@oldboy63-libo oldboy]$ sed -n '/Alex/p' person.txt 
103,Alex,COO
[root@oldboy63-libo oldboy]$ sed -n '/oldboy/p;/yy/p' person.txt 
101,oldboy,CEO
104,yy,CFO
[root@oldboy63-libo oldboy]$ sed -n '/oldboy\|yy/p' person.txt 
101,oldboy,CEO
104,yy,CFO
在指定行后面添加信息
[root@oldboy63-libo oldboy]$ sed '2aoldboy' person.txt 
101,oldboy,CEO
102,zhaoyao,CTO
oldboy
103,Alex,COO
104,yy,CFO
105,feixue,CIO
============================================================================

[root@oldboy63-libo oldboy]$ sed 'aoldboy' person.txt  person.txt 
101,oldboy,CEO
oldboy
102,zhaoyao,CTO
oldboy
103,Alex,COO
oldboy
104,yy,CFO
oldboy
105,feixue,CIO
oldboy
101,oldboy,CEO
oldboy
102,zhaoyao,CTO
oldboy
103,Alex,COO
oldboy
104,yy,CFO
oldboy
105,feixue,CIO
oldboy
============================================================================
[root@oldboy63-libo oldboy]$ sed '$aoldboy' person.txt 
101,oldboy,CEO
102,zhaoyao,CTO
103,Alex,COO
104,yy,CFO
105,feixue,CIO
oldboy
在指定行前面添加信息
[root@oldboy63-libo oldboy]$ sed '2ioldboy' person.txt 
101,oldboy,CEO
oldboy
102,zhaoyao,CTO
103,Alex,COO
104,yy,CFO
105,feixue,CIO
============================================================================
[root@oldboy63-libo oldboy]$ sed 'ioldboy' person.txt 
oldboy
101,oldboy,CEO
oldboy
102,zhaoyao,CTO
oldboy
103,Alex,COO
oldboy
104,yy,CFO
oldboy
105,feixue,CIO
============================================================================
[root@oldboy63-libo oldboy]$ sed '1ioldboy' person.txt 
oldboy
101,oldboy,CEO
102,zhaoyao,CTO
103,Alex,COO
104,yy,CFO
105,feixue,CIO
多行添加信息

连续多行

[root@oldboy63-libo oldboy]$ sed -e '2,4aoldboy' person.txt 
101,oldboy,CEO
102,zhaoyao,CTO
oldboy
103,Alex,COO
oldboy
104,yy,CFO
oldboy
105,feixue,CIO

不连续多行

[root@oldboy63-libo oldboy]$ sed -e '2aoldboy' -e '4aoldboy' person.txt 
101,oldboy,CEO
102,zhaoyao,CTO
oldboy
103,Alex,COO
104,yy,CFO
oldboy
105,feixue,CIO

直接添加多行内容

[root@oldboy63-libo oldboy]$ sed '2aoldboy\noldgirl\noldbaby' person.txt 
101,oldboy,CEO
102,zhaoyao,CTO
oldboy
oldgirl
oldbaby
103,Alex,COO
104,yy,CFO
105,feixue,CIO
删除指定信息

按行删除指定信息

[root@oldboy63-libo oldboy]$ sed '4d' person.txt 
101,oldboy,CEO
102,zhaoyao,CTO
103,Alex,COO
105,feixue,CIO
[root@oldboy63-libo oldboy]$ sed -r '/Alex|oldboy/d' person.txt 
102,zhaoyao,CTO
104,yy,CFO
105,feixue,CIO

删除/etc/service文件中注释和空行
sed -r '/^$|^#d' /etc/services
sed -rn '/^$|^#/!p' /etc/services

替换操作

sed -r '/IPADDR/s#(IP.*=)10.0.0.2#\110.0.0.201#g' /etc/sysconfig/network-scripts/ifcfg-eth0
利用&实现后项应用前项正则匹配到的信息

[root@oldboy63-libo oldboy]$ echo "123456"|sed 's#[0-9]\+#<&>#g'
<123456>
[root@oldboy63-libo oldboy]$ echo "123456"|sed -r 's#[0-9]{1}#<&>#g'
<1><2><3><4><5><6>
利用sed取出IP地址

显示IP地址
ip a s eth0
ifconfig eth0
筛除指定行
ip a s etho0|sed -n '3p'
取出IP地址

[root@oldboy63-libo oldboy]$ ip a s eth0|sed -n '3p'|sed -r 's#^.*t (.*)#\1#g'|sed -r 's#(.*)/24.$#\1#g'
10.0.0.200/24 brd 10.0.0.255 scope global noprefixroute eth0
[root@oldboy63-libo oldboy]$ ip a s eth0|sed -nr '3s#^.*t (.*)/24.*$#\1#gp'
10.0.0.200
利用sed获取文件属性权限数值
[root@oldboy63-libo oldboy]$ stat /etc/hosts|sed -n '4p'|sed -r 's#^A.*\((.*)/-.*$#\1#g'
权限:(0644/-rw-r--r--)  Uid:(    0/    root)   Gid:(    0/    root)

相关文章

  • day 17 操作系统正则符号/grep

    系统通配符号: 系统正则符号:grep sed awk 系统正则: BRE( basic regular e...

  • 7月23日 正则符号

    系统通配符号 * 匹配所有内容 {} 匹配序列信息 系统正则符号 主要在grep sed awk 命令用基础正则b...

  • 2019-07-24

    day19 课程介绍 1.系统正则符号2.sed命令详解 知识回顾 通配符号 * {}通配符号主要用于匹配文件名...

  • 7月24日 系统正则符号和sed

    sed命令 修改文件内容,对文件行进行操作配置文件,文本文件 语法结构 sed [参数] ‘条件 指令’ 文件信息...

  • 2019-07-23

    day18 操作系统正则符号/grep 1.系统通配符号2.系统正则符号 知识回顾: 1.系统文件属性(文件类型 ...

  • sed 命令学习

    参考极客学院:正则表达式和 SED参考菜鸟教程:Linux sed命令参考酷壳:SED 简明教程 sed匹配没有问...

  • sed与awk

    环境准备 sed命令查找 查找指定的行 过滤出指定的行 grep 命令实现 这里的例子包含扩展正则符号,不适用eg...

  • 06系统正则符号

    系统符号作用简化操作,进行匹配 系统特殊符号基础符号$ 用于取出变量的内容;用于取出指定列的信息(awk);表...

  • shell 目录

    什么是正则 结构 Sed Awk Grep

  • day17-正则表达式

    17.1 正则基本符号 1.什么是正则表达式 正则表达式就是字符匹配的工具,用来做正则匹配;是由正则符号和普通字符...

网友评论

      本文标题:7月24日 系统正则符号和sed

      本文链接:https://www.haomeiwen.com/subject/hukfrctx.html