【shell】正则表达式、正则常用命令、流编辑器


前言

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


一、内容概述

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

二、正则元字符

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/被替换字符/替换变量/”

五、思维导图

在这里插入图片描述

六、结语

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

雪碧不要气

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值