SHELL编程之三剑客

操作系统三剑客命令

基础知识

  1. 正则符号

基础正则符号:

^ 以什么开头的信息进行匹配----- ^oldboy

$ 以什么结尾的信息进行匹配----- oldboy​$

^$ 表示匹配空行信息

. 匹配任意一个且只有一个字符 grep “.”

* 匹配前一个字符连续出现0次或者多次

.* 匹配所有任意信息 类似于通配符 *

\ 将有意义的字符信息,转换成普通的字符进行识别

​ —>找出文件中以点结尾的信息

​ 将特殊的扩展正则符号,转换成基础正则符号

​ 将没有意义的字符转换成有意义的字符,(\n \t \r)

[ ] 匹配多个字符信息,多个字符信息匹配时是或者的关系

​ [ok] 在文件中找到有o的字符信息,有k的信息

​ **ps:**将一个字符串信息,进行拆分成一个一个的字符进行匹配

[^] 对匹配的字符进行排除(反选)

​ [^ok] 在文件中找到有o的字符信息和有k的字符信息,进行排除,选择其他的信息

  1. 扩展正则符号:

    + 匹配前一个字符连续出现一次或多次

    | 利用竖线可以匹配多个字符信息

    () 将多个字符信息汇总成一个整体,进行过滤

    ​ 进行后项引用前项 (oldboy)\1–sed

    {} 指定匹配前一个字符连续出现多少次

    ​ {n,m} 至少连续n次,最多连续m次

    ​ {n} 匹配只连续n次的信息

    ​ {n,} 至少连续n次,至多不限

    ​ {,m} 至少连续0次,至多连续m次

    ? 匹配前一个字符连续出现0次或者1次

    grep命令识别扩展正则:egrep -E

    sed命令识别扩展正则:sed -r


sed命令

sed命令概述说明:

sed命令:字符流编辑工具 (行编辑工具)==按照每行中的字符进行处理操作

ps:全屏编辑工具 vi/vim

sed命令作用说明:

  1. 擅长对行进行操作处理

  2. 擅长将文件的内容信息进行修改调整/删除

    编写脚本:修改文件内容时

    网络服务中的IP地址进行修改:

    第一个步骤:vi ifcfg-eth0

    第二个步骤:重启网络服务

    第三个步骤:检查测试

具体功能作用:

  1. 文件中添加信息的能力(增)
  2. 文件中删除信息的能力(删)
  3. 文件中修改信息的能力(改)
  4. 文件中查寻信息的能力(查)

sed命令的语法信息

sed [OPTION]... {
   script-only-if-no-other-script} [input-file]...
命令	参数			条件-处理(指令)							处理文件信息

# 显示文件中有oldboy的信息
sed -n 				'oldboy'						oldboy.txt

sed命令执行原理

sed命令实践测试—查看信息

# 测试信息
cat >person.txt<<EOF
101,oldboy,CEO
102,zhangyang,CTO
103,Alex,COO
104,YY,CFO
105,feixue,CIO
EOF

# 测试1 将有oldboy行的信息找出来
[root@wenyi] ~]# sed -n '/oldboy/p' person.txt 
101,oldboy,CEO


[root@wenyi] ~]# sed -n '1p' person.txt 
101,oldboy,CEO

# 测试2 将有oldboy到Alex行的信息都输出出来
[root@wenyi] ~]# sed -n '/oldboy/,/Alex/p' person.txt 
101,oldboy,CEO
102,zhangyang,CTO
103,Alex,COO

[root@wenyi] ~]# sed -n '1,3p' person.txt 
101,oldboy,CEO
102,zhangyang,CTO
103,Alex,COO


# 测试3 将有oldboy的行和Alex的行的信息输出出来
[root@wenyi] ~]# sed -n '/oldboy/p;/Alex/p' person.txt 
101,oldboy,CEO
103,Alex,COO

[root@wenyi] ~]# sed -n '1p;3p' person.txt 
101,oldboy,CEO
103,Alex,COO

sed命令添加信息的方法

  • 在文件第一行添加信息
# 在要输入的信息前面添加'行号+i'
[root@wenyi] ~]# sed '1i100,oldgrile,UFO' person.txt 
100,oldgrile,UFO
101,oldboy,CEO
102,zhangyang,CTO
103,Alex,COO
104,YY,CFO
105,feixue,CIO
  • 在文件最后一行添加信息
# 在要添加的文件前面添加$a($:表示行号,可以是数字,但是如果不知道最后一行是多少行的时候 就用$)
[root@wenyi] ~]# sed '$a100,oldgrile,UFO' person.txt 
101,oldboy,CEO
102,zh
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值