文章目录
- 前言
- 一、内容概述
- 二、正则元字符
- 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/被替换字符/替换变量/” |
五、思维导图
六、结语
总结:想要学得好,唯有多敲多练,最开始的时候就是抄脚本,后期可根据需求独立盲写脚本
练习集:不定时更新练习用脚本 错误集:不定时更新错误集