各种文本查询工具

本文详细介绍了正则表达式的基础和扩展概念,并探讨了如何在vi编辑器、grep、egrep、sed和awk等文本处理工具中使用它们。通过实例展示了awk和sed在提取文件内容、替换文本和过滤行等方面的应用,为Linux系统管理和自动化任务提供强大支持。
摘要由CSDN通过智能技术生成

正则表达式概述:组成“操作”的基本语法,“操作”是文件处理必备的能力
文本处理工具 基础正则表达式 扩展正则表达式
vi编辑器 支持
grep 支持
egrep 支持 支持
sed 支持
awk 支持 支持
基础正则表达式
\ 转义字符,用于取消特殊符号的含义 \i、\n等
^ 匹配字符串的开始位置 ^world匹配以world开头的行
$ 匹配字符串的结束位置 world$匹配以world结束的行
. 匹配除\n(换行)之外的任一字符

  • 匹配前面子表达式0次或多次
    [list] 匹配list列表中的一个字符 [0-9]0-9任一数字,[aet]aet任一字符
    [^list] 匹配不在list列表中的任一字符
    {n} 匹配前面子表达式n次 [0-9]{2}匹配两位0-9的数字
    {n,} 匹配至少n次前面子表达式 [0-9] {2,}至少两位0-9的数字
    {n,m} 匹配前面表达式n到m次 [0-9] {2,5}两到五个0-9的数字
    扩展正则表达式
  • 匹配前面子表达式一次以上 Go+d,将匹配至少一个o
    ? 匹配前面子表达式0次或1次 go?n,将匹配go或god
    () 将()中字符视为一个整体 (xyz)+,匹配xyz一次以上
    | 以或的方式匹配字符串 Good|great,匹配good或great

grep:主要用于过滤
cat:查询全篇

一、AWK工具:主要用于提取文件
语法:awk [选项] ‘模式或条件 {编辑指令}’ 文件
模式可以为条件语句、复合语句和正则表达式等
FS
NF 当前处理行字段个数
NR 当前处理行行号
$0 当前处理行整行
$n 当前处理行的第n个字段(第n列)

二、 sed工具:主要用于提取行和替换文本

  1. sed是文本处理工具,依赖于正则表达式,可读取文本内容,根据指定条件对数据进行添加、删除、替换等操作,被广泛用于shell脚本,以完成自动化处理任务
  2. 基本语法
    命令语法:sed [常用选项] [操作] 参数 文件
    常用选项: -e指定要执行的命令,只有一个编辑命令时可省略
    -n只输出处理后的行,读入时不显示
    -i直接编辑文件,而不输出结果
    操作: p 输出指定行
    d 删除指定行
    s 字串替换
    r 读取指定文件
    w 保存为文件
    i 当前行前插入
  3. 输出指定的行:
    sed -n ‘p’ /etc/passwd 输出所有内容
    sed -n ‘6p’ /etc/passwd 输出第六行内容
    sed -n ‘6,8p’ /etc/passwd 输出6到8行内容
    sed -n ‘p;n’ /etc/passwd 输出奇数行
    sed -n ‘n:p’ /etc/passwd 输出偶数行
    sed -n ‘1,10{p;n}’ /etc/passwd 输出1~10行中偶数行
    sed -n ‘1,10{n;p}’ /etc/passwd 输出1~10行中奇数行
    sed -n ’10, n ;
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值