正则表达式

正则表达式
    使用若干符号配合某工具对文档进行增删改查等操作
    grep 支持正则表达式 (基本正则)   
    egrep / grep -E 支持扩展正则                 
    grep -v取反

以下是正则表达式的应用

  grep [rot] user 
  grep [^rot] user
  grep "[0-9]" user
  grep "[^0-9]" user
 grep "[a-z]" user
 grep "[^a-z]" user
 grep "[^a-Z]" user
 grep "[^a-Z 0-9]" user
 grep "[a-Z 0-9]" user
 grep "r..t" user
 grep ".*" user
 grep "." user
 grep "ro\{1,2\}t" user
 grep "ro{2,6}t" user
 grep "ro\{1,\}t" user
 grep "ro\{2\}t" user
 grep "\(0:\)\{2\}" user
 grep "\(3:\)\{1\}" user
扩展正则

以下是扩展正则表达式的应用
 grep "ro\{0,1\}t" user
 egrep "ro{0,1}t" user
 egrep "ro?t" user
 egrep "root|^bin" user
 egrep "bin\b" user
 egrep "\bbin\b" user

sed   流式编辑器     增删改查处理文档   非交互式 支持正则表达式
   用法        
   前置命令 | sed [选项] '条件指令'
   sed [选项] '条件指令'  文件...

选项
 -n 屏蔽默认输出          =显示行号 !取反 $= 输出最后一行行号
 -r 支持扩展正则
-i   修改源文件

指令 (指令写在单引号里 
            指令前加/ 表示匹配字符串)
p  输出
d  删除
s  替换

  =显示行号 !取反 $= 输出最后一行行号
   sed -n '2p' user
   sed -n '2!p' user
   sed '3,+1!d' user
   sed -n '='user
   sed -n '=' user
   sed -n '$=' user
   sed -i '$d' user  取反 
  sed 's/2017/6666/' test.txt 
  sed 's/2017/6666/2'test.txt
  sed 's/2017/6666/2' test.txt
  sed '1s/2017/6666/' test.txt
  sed '3s/2017/6666/3' test.txt
  sed '3s/2017//3' test.txt              将第三行第三个2017删除
  sed '/2024/s/2017/6666/' test.txt    将2024行中的2017替换成6666

sed '/root/s/\/bin\/bash/\/sbin\/sh/' user
sed '1s#bin/bash#/sbin/sh#' user     更改s替换符
 编写脚本,配置http服务 82号端口开启
#!/bin/bash
yum -y install httpd &>/dev/null
sed -i '42s/0/2/' /etc/httpd/conf/httpd.conf
systemctl restart httpd
systemctl enable httpd
echo "web-test~~~" > /var/www/html/index.html
setenforce 0
[root@svr7 opt]# getenforce
Permissive
[root@svr7 opt]# curl 192.168.4.7:82
指令
a   行下追加
i    行上添加
c    替换整行

编写脚本,找到使用bash的账户名,按照用户名-->密码的格式存在一个文件里
#!/bin/bash
u=$(sed -n '/bash$/s/:.*//p' /etc/passwd )
for i in $u
do
  pass=$(grep $i /etc/shadow)
  pass1=${pass#*:}
  pass2=${pass1%%:*}
  echo "$i --> $pass2"

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值