快速上手Linux核心命令(五):文本处理三剑客

  • 快速上手Linux核心命令(五):文本处理三剑客已关闭评论
  • 104 次浏览
  • A+
所属分类:linux技术
摘要

@剑仙镇楼~ O(∩_∩)O
上一篇中已经预告,我们这篇主要说Linux文本处理三剑客。他们分别是grep、sed、awk 。既然能被业界称为三剑客,可见其在Linux命令中占有举足轻重得地位。所以呢,这里也专门写一篇文章说一说其用法。

@

剑仙镇楼~ O(∩_∩)O
快速上手Linux核心命令(五):文本处理三剑客

前言

上一篇中已经预告,我们这篇主要说Linux文本处理三剑客。他们分别是grepsedawk 。既然能被业界称为三剑客,可见其在Linux命令中占有举足轻重得地位。所以呢,这里也专门写一篇文章说一说其用法。

快速上手Linux核心命令(五):文本处理三剑客

正则表达式

三剑客一般会配合着正则表达式一起使用,为了更好的掌握三剑客,这里简单介绍下正则表达式的使用。

正则表达式是由普通字符(例如字符 a 到 z)以及特殊字符(称为"元字符")组成。在搜索文本时,与要搜索的字符串进行匹配

举个栗子

*.txt   # 表示任意以.txt结尾的文件 

这里就不列出所有的了,我们只把常用的拿出来

1、特殊字符

注:如果需要匹配一下字符,需要在字符前加进行转义

特殊字符 特殊字符说明 例子
(** | 匹配字符串的结尾位置 | **x)匹配以"x"结尾的字符串
^ 匹配字符串的开头位置 ^abc 匹配以"abc"开头的字符串
. 匹配任意一个字符,除了换行符外
***** 匹配前面的0次或多次的子表达式
+ 匹配前面字符有 1 个或多个
.* 匹配任意一个字符有 0 个或多个,也就是能匹配任意的字符
{} 匹配前面字符的数量范围 {2}表示重复两次,{2,}表示至少重复两次,{2-4} 重复2-4次
[] 括号中可以包含表示字符集的表达式 [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Cgsing2y-1650173645257)(快速上手Linux核心命令(五):文本处理三剑客/1649470939258a-z-1649470958893.png)]

2、非打印字符

字符 字符说明
f 匹配一个换页符
n 匹配一个换行符
r 匹配一个回车符
t 匹配一个制表符
s 配任何空白字符,包括空格、制表符、换页符
S 匹配任何非空白字符

第一剑客 grep

1、简介

grep:文本过滤工具。 用于查找文件里符合条件的字符串,一般配合正则表达式一起使用。

grep 只支持匹配而不能替换匹配的内容,替换的功能可以由 sed 来完成。

2、语法格式

grep [参数选项] [匹配模式][查找得文件] 

上面说的匹配模式就是你需要找得东西,可以是普通文字符号,也可以是正则表达式。

3、参数说明

参数 参数说明
-A 除了显示匹配内容行之外,还显示该行之的N行
-B 除了显示匹配内容行之外,还显示该行之的N行
-C 除了显示匹配内容行之外,还显示该行之前后的N行
-c 统计匹配的行数
-e 实现多个选项间的逻辑 or 关系
-E 支持扩展的正则表达式
-i 忽略大小写
-n 显示匹配行和行号
-o 仅显示匹配到的字符串
-q 不输出任何信息,脚本中常用
-v 显示不被匹配到的行或者说排除某些行
-w 显示匹配整个单词
--color 为grep过滤的匹配字符串添加颜色,以突出显示

4、实践操作

后面的示例都是以操作下面文本为例

# 下面是我们演示所使用的文本文件 [root@xiezhr test]# cat xiezhr.txt  90后,毕业于某不知名本科院校,通信工程专业 目前从事IT类工作,工作生活于春城昆明 天天被各种奇葩业务折腾得死去活来,但依然保有对各项技术热忱得追求和美好生活得向往 个人