二.文本处理工具

一.grep

grep
grep -E = egrep
在这里插入图片描述

(一)grep格式

命令及参数匹配条件处理的文件含义
greproot/etc/passwd过滤root关键字
grep^root/etc/passwd以root开头
greproot$/etc/passwd以root结尾
grep -irootpasswd忽略大小写
grep -E“\注<root”passwdroot字符之前不能有字符
grep -E“root\注>”passwdroot字符之后不能有字符
grep -数字admpasswd显示过滤行以及上面几行和下面几行
grep -nadmpasswd显示匹配的行所在行号
grep -A数字admpasswd显示过滤行以及下面几行
grep -B数字admpasswd显示过滤行以及上面几行
grep -vadmpasswd反向过滤

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

(二)grep字符数量匹配规则

匹配条件含义
^westos以westos开有
westos$以westos结尾
w…sw开头s结尾中间4个任意字符
…ss结尾前面5个任意字符
*字符出现任意次
?0到1次
+1次到任意次
{n}n次
{m,n}m到n次
{0,n}0-n次
{,n}0-n次
{m,}最少m次

(ss){2}ss字符串出现2次
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

练习脚本:

请显示系统中能被su命令切换的用户名称
在这里插入图片描述

二.sed

(一)命令格式:

sed 参数 命令 处理对象
sed 参数 处理对象 -f 处理规则文件
在这里插入图片描述
对整行字符的处理

sed参数命令处理对象含义
sedp显示
sed-n5pwestos显示第五行
sed-n3,5pwestos显示3到5行
sed-ne‘3p;5p’westos显示3和5行
sed-ne1,5pwestos1-5行
sed-ne‘5,$p’westos5到最后以行
sed-n‘/^#/p’fstab显示以#开头的行

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

sed参数处理对象含义
sedd删除
sed5dwestos删除第五行
sed‘/^#/d’fstab把#开头的行删除
sed‘/^UUID/!d’fstab除了UUID以外的行都删除
sed-e ‘5,$d’westos5行之后都删除

在这里插入图片描述
在这里插入图片描述

sed参数处理对象
seda
sed-e ‘$a hello world’fstab
sed-e ‘$a hello\nworld’fstab
sed-e ‘/^#/a hello world’fstab

在这里插入图片描述

sed参数处理对象
sedc替换
sed-e ‘/^#/c hello world’fstab
sed‘5c hello world’westos

在这里插入图片描述
在这里插入图片描述

sed参数处理对象含义
sedw把符合的行写到指定文件中
sed‘/^UUID/w westofile’fstab把fstab中UUID开头的行写入westosfile中

在这里插入图片描述
在这里插入图片描述

sed参数处理对象含义
sedi插入
sed‘5i hello westos’westos
sedr整合文件
sed‘2r haha’westos

在这里插入图片描述
在这里插入图片描述

(二)sed 字符替换

笑脸=:/
/=@

sed参数处理对象含义
sed‘s/😕###/g’westos
sed‘s/😕###/’westos
sed‘1,5s/😕###/g’westos
sed‘1s/😕###/g’westos
sed‘1s/😕###/g;5s/😕###/g’westos
sed‘/lp/,/shutdown/s/😕###/g’westos
sed‘s///####/g’westos
sed‘s@/@####@g’westos

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

sed ‘s@/@####@g’ -i passwd 把sed处理的内容保存到passwd文件中

标题练习及脚本

在这里插入图片描述

Apache_port.sh
此脚本后介入数字,http的端口就改为此数字,假设selinux为关闭状态

  1 #!/bin/bash/
  ##判断输入是否为空
  2 [ -z "$1" ] && {
  3   echo -e "\033[31mError:Please input port following script!!\033[0m"
  4   exit
  5 }
  ##判断是否安装httpd
  6 rpm -q httpd &>/dev/null ||{
  7   echo -e "\033[31mError:Apache is not installed!!\033[0m"
  8   exit
  9 }
  ##判断是否是超户
 10 [ "$USER" != "root" ] && {
 11   echo -e "\033[31mError:Please run script with root!!\033[0m"
 12   exit
 13 }
 ##判断端口号是否被占用
 14 netstat -antlupe | grep -E ":$1\>" &>/dev/null &&{
 15  echo -e "\033[31mError:Port $1 is in used!!\033[0m"
 16  exit
 17 }
 ##更改端口号
 18 sed "45c Listen $1" -i /etc/httpd/conf/httpd.conf
 19 systemctl restart httpd

在这里插入图片描述

三.awk

awk -F 分隔符 BEGIN{}{}END{} FILENAME

NR #行数
NF #列数
在这里插入图片描述

FILENAME #文件名称本身
westos #westos变量值
“westos” #westos字符串
在这里插入图片描述
在这里插入图片描述
/bash$/ #条件
/条件1|条件2/ #条件1或者条件2
/条件1/||/条件2/ #条件1或者条件2
/条件1/&&/条件2/ #条件1并且条件2
在这里插入图片描述
在这里插入图片描述
$0 #所有的列
$1 #第一列
$2 #第二列
$3 #第三列
在这里插入图片描述
在这里插入图片描述

#/etc/passwd文件的第六列没有home关键字并且以bash结尾的行
在这里插入图片描述

在这里插入图片描述

练习:

统计在系统中能su切换的并且用户家目录不在/home下的用户数量
在这里插入图片描述

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值