shell 第二章 文本处理工具

本文详细介绍了Linux Shell中的文本处理工具,包括grep的全局正则表达式搜索、sed的字符替换和编辑操作,以及awk的列处理能力。通过实例演示了如何使用这些工具进行文本筛选、修改和分析。
摘要由CSDN通过智能技术生成

一.grep [Globally search a Regular Expression and Print]

grep
grep -E = egrep

1.grep 格式:

grep 匹配条件 处理文件

grep root passwd          ##过滤root关键字
grep -i root passwd        ##忽略大小写
grep -E "\<root" passwd          ##root字符之前不能有字符
grep -E "root\>" passwd           ##root字符之后不能有字符
grep -数字             ##显示过滤行以及上面几行和下面几行
grep -n                  ##显示匹配的行所在行号
grep -A                  ##显示过滤行以及下面几行
grep -B                  ##显示过滤行以及上面几行
grep -v                       ##反向过滤

grep root passwd     ##过滤root关键字
grep -i root passwd ##过滤root关键字,并忽略大小写
vim passwd 
grep -i root passwd 
grep -E "\<root" passwd ##root字符之前不能有字符
grep -E "root\>" passwd   ##root字符之后不能有字符
grep -E "\<root\>" passwd ##root字符之前和之后都不能有字符

grep -n chroot passwd    ##显示匹配的行所在行号
grep -2 chroot passwd    ##显示过滤行以及上面2行和下面2行
grep -A2 chroot passwd   ##显示过滤行以及下面2行
grep -B2 chroot passwd   ##显示过滤行以及上面2行
grep root passwd -v      ##反向过滤,除了含有root行之外的所有行都输出

 

2. grep字符数量匹配规则:

^westos          ##以westos开头
westos$         ##以westos结尾
w....s               ##w开头s结尾中间4个任意字符
.....s                ##s结尾前面5个任意字符
*                ##字符出现任意
?                ##0到1次
+                ##1次到任意次
{n}              ##n次
{m,n}         ##m到n次
{0,n}          ##0-n次
{,n}            ##0-n次
{m,}           ##最少m次
(lee){2}     ##lee字符串出现2次

grep w.s westos
grep w..s westos
grep w...s westos  ##w开头s结尾中间3个任意字符
grep w.*s westos ##w开头s结尾中间字符出现任意

 

grep -E 'w.?s' westos ##0到1个字符
grep -E 'w.+s' westos ##1次到任意个字符
grep -E 'w.{1,2}s' westos ##1到2个字符
grep -E 'w.{2,}s' westos ##最少2个字符

grep -E 'we.{2,}s' westos     ##we开头s结尾中间至少2个任意字符
grep -E 'wea.{2,}s' westos     ##wea开头s结尾中间至少出现2次
grep -E 'we.{,2}s' westos     ##we开头s结尾中间0-2个任意字符
grep -E 'w.{,2}s' westos      ##w开头s结尾中间0-2个任意字符
grep -E 'w(ea){2,}s' westos   ##w开头s结尾中间ea字符串出现至少2次

 

 

 练习脚本:

请显示系统中能被su命令切换的用户名称

vim show_user.sh

#!/bin/bash
cat /etc/passwd | grep -E "/bin/bash|/bin/sh" | cut -d : -f 1

sh show_user.sh 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值