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

正则表达式

Regular Express

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

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

                                                                                     基本正则列表

           正则符号                                 描述
^匹配行首
$匹配行尾
[ ]集合,匹配集合中的任意单个字符
[ ^ ]对集合取反
.匹配任意单个字符
*匹配前一个字符任意次数(不允许单独使用)
\{n,m\}匹配前一个字符n-m次
\{n\}匹配前一个字符n次
\{n,\}匹配前一个字符n次及以上
\(\)保留

grep ".*" 匹配任意

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

扩展正则列表
正则符号描述
+最少匹配一次
?组多匹配一次
{n,m}匹配n到m次
()组合为整体,保留
|或者
\b单词边界

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

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

egrep 过滤工具

常用命令选项

-i  忽略字母大小写

-v :条件取反

-c:统计匹配的行数

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

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

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

 

Sed命令解析

sed工具概述

流示编辑器

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

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

-可实sed使用方式现对文本的输出,替换,复制,剪切,导入,导出等各种操作

sed使用方式

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

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

选项 -n 屏蔽默认输出

        -r 支持扩展正则

        -i写入文件

指令 p 输出

        d删除

        s替换

sed  'p' user      输出user文件的所有行,有默认输出

sed -n 'p' user      输出user文件的所有行,没有默认输出

sed -n '1p' user    输出第1行

sed -n '2p' user     输出第2行

sed -n '3p' user     输出第3行

head -2 user | tail -1

sed -n '1,3p' user  输出1-3行

sed -n '1p;3p' user 输出第1行和第3行

sed -n '1,+2p' user 输出第1行以及后面2行

sed -n '3,+1p' user 输出第3行以及后面1行

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

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

sed -n '/root/p' user 输出有root单词的行

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

sed  'd' user           删除所有行

sed  1d' user            删除第1行

sed  '5d' user          删除第5行

sed  '1,3d' user      删除1~3行

sed  '1d;3d' user     删除第1行和第3行

sed  '3+2d' user    删除第3行以及后面2行

sed   '/bash$/d'  user  删除以bash结尾的行

替换:

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     #为文件中每个大写字母添加括号

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

编写脚本实现匿名上传


#!/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

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值