文章目录

  • 前言
  • 一、内容概述
  • 二、正则元字符
  • 2.1 基础表达式
  • 2.2 扩展表达式
  • 三、搭配命令
  • 3.1 sort(排序)
  • 3.2 uniq(统计)
  • 3.3 tr(替换)
  • 3.4 echo(输出)
  • 3.5 date(日期)
  • 四、grep/sed/awk(文本三剑客)
  • 4.1 grep(内容查询)
  • 4.2 awk(流查询器)
  • 4.3 sed(流编辑器)
  • 五、思维导图
  • 六、结语



前言

本博客内容仅为记录博主思路,仅供参考,一切以自己实践结果为准。


一、内容概述

正则表达式的基本定义,使用方法及搭配命令
流编辑器的特点及使用方法

二、正则元字符

2.1 基础表达式

  • .:匹配任意字符
  • *:匹配字符任意次数(包括0次)
  • ^字符:以对应字符开头的行
  • 字符$:以对应字符结尾的行
  • ^$:空行
  • [字符]:匹配范围内的字符

2.2 扩展表达式

  • ?:匹配零次或一次
  • +:匹配一次或一次以上
  • {n}:匹配n次以上
  • {n,m}:匹配字符至少n次,至多m次

三、搭配命令

3.1 sort(排序)

  • sort 选项 参数

选项

作用

-n

按照数字大小排序

-r

反向排序,可搭配-n使用

-u

排序后压缩想同行

-t

指定字符分隔符,默认为tab制表符

-f

忽略大小写

-b

忽略行首空格

-k

指定排序字段

-o 文件名

将排序后的结果另存为文件

3.2 uniq(统计)

  • uniq -c 字符 文件:压缩相同字符行,并统计重复次数

3.3 tr(替换)

  • tr 选项 字符1 字符2

选项

作用


将字符1全部替换为字符2

-c

除了字符1,其余字符全部替换为字符2(包含换行符\n)

-d

删除所有匹配的字符

-s

压缩连续的匹配字符

3.4 echo(输出)

  • echo -n 内容:不换行输出(删除默认自带的换行符\n)
  • echo -e 内容 参数:-e代表调用后方参数

选项

作用

\n

换行符,换行输出

\t

插入tab键,制表符

\\

转义符,输出字符 \ 本身

\b

退格,删除一个字符

\c

抑制后方输出,包括换行符

\f

换行,但光标留在原处

3.5 date(日期)

  • date:显示当前日期
  • date -d 参数:根据参数,显示对应日期

参数

作用

%F

年月日

%T

时分秒

‘+3 day’

往后三天

‘-3 day’

往前三天

四、grep/sed/awk(文本三剑客)

4.1 grep(内容查询)

  • grep 选项 条件 文件

选项

作用

-i

忽略大小写

-n

输出匹配内容同时显示行号

-v

取反查找

-o

只显示匹配项

-c

统计匹配字符的总行数

-f

显示两个文件相同内容(以行位单位,但行号可不同)

4.2 awk(流查询器)

  • awk 语法 文件:默认空格为分隔符
  • awk -F字符 语法 文件:指定字符为分割符

语法

作用

‘{print $1}’

打印分割后的第一列内容

‘a[“$1”]++;{print a[“$1”]}’

每当出现重复的下标,则该下标数组值自增1,统计下标共计重复出现多少次

‘BEGIN{i=0} {i++} END{print i}’

BEGIN扫描前执行一次;中间括号awk每扫描一次,则执行一次;END扫描结束后执行一次

  • awk内置特殊变量

变量

含义

NR

扫描到内容后,值加一(相当于行号)

FNR

扫描到内容后,值加一;遇到第二个文件时,从零重新计算

NF

当前行中的字段个数

FS

输入字段分隔符(默认空格)

OFS

输出字段分隔符(默认空格)

RS

输入记录分隔符(默认空格)

ORS

输出记录分割符(默认空格)

4.3 sed(流编辑器)

  • sed 选项 语法 文件

选项

作用

-n

不显示处理过程及原文件内容

-i

保存处理过程到文件,不要与-n同用,会删除原文件内容

-e

将下一个参数作为指令

-f

调用包含sed命令文件的sed

语法

含义

a

在匹配行后面插入内容

i

在匹配行前方插入内容

c

更改匹配的行

d

删除匹配行的内容

s

替换匹配行的内容

p

打印处理过的内容

=

打印匹配行的行号

n

跳过匹配行,匹配下一行

r

读取另外文件的文件内容到当前文本中

w

将匹配行的内容另存为文件

‘ ’

无法识别变量:‘s/被替换字符/替换字符/’

" "

可识别变量:”s/被替换字符/替换变量/”

五、思维导图

grafana 匹配时间正则表达式_换行符

六、结语

总结:想要学得好,唯有多敲多练,最开始的时候就是抄脚本,后期可根据需求独立盲写脚本
练习集:不定时更新练习用脚本 错误集:不定时更新错误集