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

简介: 文章目录前言一、内容概述二、正则元字符2.1 基础表达式2.2 扩展表达式三、搭配命令

一、内容概述

正则表达式的基本定义,使用方法及搭配命令

流编辑器的特点及使用方法

二、正则元字符

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 换行,但光标留在原处

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

五、思维导图

相关文章
|
6天前
|
Shell 程序员 数据安全/隐私保护
shell 脚本 if-else判断 和流程控制 (基本语法|基础命令)
shell 脚本 if-else判断 和流程控制 (基本语法|基础命令)
|
13天前
|
运维 自然语言处理 开发工具
【专栏】NeoVim正逐渐取代Vim成为运维人员首选的文本编辑器。这 8 个原因或许是答案,命令对比一目了然!
【4月更文挑战第28天】NeoVim正逐渐取代Vim成为运维人员首选的文本编辑器。其优势包括更好的扩展性、现代化界面、多语言编程支持、异步处理能力、协作功能、持续更新及活跃社区。NeoVim的命令与Vim相似,但在启动配置、插件管理和窗口管理等方面有所优化。总的来说,NeoVim提供了更强大、灵活和现代的编辑体验。
|
17天前
|
网络协议 Unix Shell
第十一章 Shell常用命令与工具(二)
第十一章 Shell常用命令与工具(二)
|
17天前
|
移动开发 Shell Linux
第十一章 Shell常用命令与工具(一)
第十一章 Shell常用命令与工具(一)
|
22天前
|
存储 Shell 数据安全/隐私保护
ZooKeeper【基础知识 04】控制权限ACL(原生的 Shell 命令)
【4月更文挑战第11天】ZooKeeper【基础知识 04】控制权限ACL(原生的 Shell 命令)
27 7
|
23天前
|
Shell
ZooKeeper【基础 02】zookeeper-3.6.0 常用Shell命令(节点增删改查+监听器+四字指令)
【4月更文挑战第10天】ZooKeeper【基础 02】zookeeper-3.6.0 常用Shell命令(节点增删改查+监听器+四字指令)
25 0
|
29天前
|
分布式计算 Hadoop Shell
Hadoop【基础知识 04】【HDFS常用shell命令】(hadoop fs + hadoop dfs + hdfs dfs 使用举例)
【4月更文挑战第4天】Hadoop【基础知识 04】【HDFS常用shell命令】(hadoop fs + hadoop dfs + hdfs dfs 使用举例)
33 5
|
1月前
|
Shell Linux
在linux shell脚本中root切换到普通用户执行脚本或命令的方法
在linux shell脚本中root切换到普通用户执行脚本或命令的方法
13 1
|
1月前
|
Shell
shell学习(三)【shell变量、数组,文件命令、特殊变量】
shell学习(三)【shell变量、数组,文件命令、特殊变量】
14 0
|
1月前
|
Shell
shell 命令(一)概述【别名、 bash重定向 、定义变量】
shell 命令(一)概述【别名、 bash重定向 、定义变量】
22 0