正则表达式 、 sed基本用法 、 sed文本块处理

 

正则表达式

Regular Express

-使用"一串符号"来描述共同属性的属性

 

正则表达式  可以配合某工具对文档进行过滤筛选

 

 

grep ".*" user 匹配任意

grep "ro\{1,3\}t" user   匹配r后面1到3个o最后t   rot root rooot

\b 旁边不能是数字,字母,下划线

egrep "ro+" user  匹配r后面1个以上o 

grep "\(0:\)\{2\}" user  = egrep "(0:){2}" user   匹配两个0:

 

egrep过滤工具

格式1:egrep [选项]  '正则表达式' 文件.. ..

格式2:前置命令 | egrep [选项] '正则表达式'

egrep等同于grep -E表示允许使用扩展的正则表达式

 

常用命令选项

-i :忽略字母大小写

-v:条件取反

-c:统计匹配的行数

-q:静默,无任何输出,一般用于检测

-n:显示除匹配结果所在行号

--color:标红显示匹配字串

 

范围内单字匹配

 

 sed命令解析

sed工具概述

流式编辑器

-非交互,基于模式匹配过滤及修改文本

-逐行处理,并讲输出到屏幕

-可实现对文本的输出,删除,替换,复制,剪切,导入,,导出等各种操作

 

sed使用方式

1,前置命令 | sed 选项(定址符)指令

2,sed 选项 (定址符)指令  被处理的文件

选项: -n 屏蔽默认输出

         -r 支持扩展正则

         -i 写入文件

指令 p 输出

        d 删除

        s 替换

sed -n '1p;10p' lianxi   显示第一行和第十行

sed -n '1,10p' lianxi   显示第一行到第十行

sed -n '3,+5p' lianxi   查看第三行以及后面五行

sed -n '1~2p' lianxi    输出奇数行

sed -n '2~2p' lianxi    输出偶数行

sed -n '/root/p' lianxi    输出有root的行

sed -n '/^root/p' lianxi    输出root开头的行

删除就是把p换成d

sed 's/2017/xxxx/'  test   #将每行第一个2017换成XXXX

sed '2s/2017/xxxx/'  test    #将第二行第一个2017换成XXXX

sed 's/2017/xxxx/2'   test     #将每行第二个2017换成XXXX

sed 's/2017/xxxx/g'  test      #将每行所有的2017换成XXXX

sed -n 's/2017/xxxx/p'  test    #将所有行的2017换成XXXX并显示

sed 's/.//2;s/.$//' nssw   #删除文件中每行的第二个,最后一个字符

sed -r 's/(^.)(.*)(.$)/\3\2\1/' nssw.txt   #将每一行第一个和最后一个互换

sed -r 's/[1-9]//g'  nssw.txt   #删除文件中所有的数字

sed -r 's/([A-Z])/(\1)/g' nssw.txt     #为文件中每个大写字母添加括号

------------------------------------------------------------------------------------------------------------------------------------

编写脚本,搭建ftp服务,并且实现匿名上传

#!/bin/bash
yum -y install vsftpd >& /dev/null
sed -i '/#anon_u/s/^#//' /etc/vsftpd/vsftpd.conf
systemctl restart vsftpd
systemctl enable vsftpd
chmod 777 /var/ftp/pub

sed工具的多行文本处理

sed工具的多行文本处理操作:

  • i: 在指定的行之前插入文本
  • a:在指定的行之后追加文本
  • c:替换指定的行
  • sed  '2a XX'   a.txt            //在第二行后面,追加XX
    sed  '2i XX'   a.txt            //在第二行前面,插入XX
    sed  '2c XX'   a.txt            //将第二行替换为XX

     

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值