正则表达式(1)

news2025/2/22 13:17:10

文章目录

  • 正则表达式
  • 一.基础命令
    • 1.grep命令
      • 1.1grep格式
      • 1.2grep命令选项
    • 2.特殊的符号
      • 2.1空行——^$
      • 2.2以什么为开头—^,以什么为结尾—$
        • 2.2.1以什么为开头的格式:
        • 2.2.2以什么为结尾的格式:
      • 3.只匹配单行——^匹配的字符$
  • 二.文本处理命令
    • 1.sort命令
      • 1.1命令解释及格式
      • 1.2常用选项
    • 2.uniq命令——快捷去重
      • 2.1 格式
      • 2.2常用选项
    • 3.tr命令
      • 3.1语法格式:
      • 3.2常用选项:
    • 4.cut命令——快速裁剪
      • 4.1cut截取方法
      • 4.2格式
      • 4.3选项
      • 4.4示例
    • 5.split——文件拆分
      • 5.1格式
      • 5.2选项
      • 5.3示例
    • 6.paste——合并文件
      • 6.1格式
      • 6.2选项
    • 7.拓展
      • 7.1统计当前主机的连接状态
      • 7.2统计当前连接主机数
      • 6.2选项
    • 7.拓展
      • 7.1统计当前主机的连接状态
      • 7.2统计当前连接主机数

正则表达式

一.基础命令

1.grep命令

对文本的内容进行过滤,针对行处理

1.1grep格式

grep [选项]…查找条件 目标文件

1.2grep命令选项

-m+数字——————匹配几次后停止

eg:grep -m 1 root /etc/passwd————————————多个匹配只取第一个

在这里插入图片描述

-v  ————————取反

eg:grep -v root /etc/passwd————————————————除了root其余展示出来

在这里插入图片描述

-i —————————忽略字符大小写

eg:grep -i Root /etc/passwd————————————————不考虑大小写展示出来

在这里插入图片描述

-n——————————显示匹配行号

eg:grep -n root /etc/passwd

在这里插入图片描述

-c—————————只显示匹配行号

eg:grep -c root /etc/passwd

在这里插入图片描述

-o——————————仅显示匹配到的字符串

eg:grep -o root /etc/passwd

在这里插入图片描述

-A——————————匹配自身当前行的后三行,包含自身展示出来

eg:grep -A 3 zjf /etc/passwd

在这里插入图片描述

-B————————————自身前几行包含自身展示

eg:grep -B 3 zjf /etc/passwd

在这里插入图片描述

-C————————————本身的前三行和后三行以及本身展示出

eg:grep -C 3 zjf /etc/passwd

在这里插入图片描述

-e——————————————逻辑或,可以跟多个条件,若有显示,没有不显示

eg:grep -e root -e bash /etc/passwd

在这里插入图片描述

-w————————————匹配整个单词

eg:grep -w root /etc/passwd

在这里插入图片描述

-E——————————表示使用扩展正则相当于egrep
-f——————————根据模式文件处理两个文件的相同内容,第一个文件作为匹配条件

eg:grep -f 123.txt 456.txt

在这里插入图片描述

-r——————————递归目录文件当中的文件内容所包含的想要的文件内容
不对软链接处理

eg:grep -r a /opt/

在这里插入图片描述

-R——————————可以处理软链接中的文件内容

eg:grep -R a /opt/

在这里插入图片描述

2.特殊的符号

2.1空行——^$

示例:

在这里插入图片描述

cat 123.txt | grep -v "^$" > test.txt————过滤掉123.txt里的空行将内容传送给test.txt

在这里插入图片描述

2.2以什么为开头—^,以什么为结尾—$

2.2.1以什么为开头的格式:

grep “^所要让开头的字符” 文件名

示例:

grep "^4" 123.txt

 grep "^a" 123.txt 

在这里插入图片描述

2.2.2以什么为结尾的格式:

grep “^所要让开头的字符” 文件名

示例:

grep "h$" 123.txt 

在这里插入图片描述

3.只匹配单行——^匹配的字符$

格式:
^匹配的字符$

示例:

grep -n "^root$" dh.txt

在这里插入图片描述

二.文本处理命令

1.sort命令

1.1命令解释及格式

以行为单位对文件内容进行排序,也可以根据不同的数据类型来排序

语法格式:

sort 选项 参数

1.2常用选项

-f————————————————忽略大小写,默认会大写字母排在前面

eg:sort -f test.txt

在这里插入图片描述

-b——————————————只排序不会忽略空格,忽略每行前面的空格

eg:sort -b test.txt

在这里插入图片描述

-n:按照数字进行排序

eg:sort -n test.txt

在这里插入图片描述

-r:针对字母的反向排序

eg:sort -r test.txt

在这里插入图片描述

-u:等同uniq,表示相同的数据仅显示一行,去重

eg:sort -u test.txt

在这里插入图片描述

-o <输出文件>:将排序后的结果转存至指定文件

eg:cat /opt/test.txt | sort -o zjf.txt

在这里插入图片描述

按原来的行一模一样的传到新的文件

在这里插入图片描述

2.uniq命令——快捷去重

uniq命令用于报告或者忽略文件中连续的重复行,常与sort命令结合使用。

2.1 格式

uniq [选项] 参数
cat 文件| uniq 选项

2.2常用选项

-c——————————————统计连续重复的行的次数,并且合并重复的行

eg:uniq -c test1.txt

在这里插入图片描述

去重排序:

cat test1.txt | uniq -c test1.txt | sort -n

在这里插入图片描述

-u——————————————显示仅出现一次的行(包括不连续的重复行)

eg:uniq -u test1.txt

在这里插入图片描述

-d	仅显示重复出现的行(必须是连续的重复行)

eg:uniq -d test1.txt

在这里插入图片描述

3.tr命令

常用于对来自标准输入的字符进行替换、压缩和删除

参数:

字符集1:
指定要转换或删除的原字符集。当执行转换操作时,
必须使用参数”字符集2“指定转换操作时,必须使用参数”字符集2“指定转换的目标字符集。
但执行删除操作时,不需要参数”字符集2“

字符集2:
指定要转换成的目标字符集

3.1语法格式:

tr 选项 参数

3.2常用选项:

-c:保留字符集1的字符,其他的字符(包括换行符\n)用字符集2替换

eg:echo abc | tr -c ‘ab’ ‘a’

在这里插入图片描述

-d:删除所有属于字符集1的字符

eg:echo abc | tr -d ‘ab’————————删除ab,打印c

-s:将重复出现的字符串压缩为一个字符串,用字符集2 替换 字符集1

eg:cat xx.txt | tr -s “w” “b”

在这里插入图片描述

-t:字符集2 替换 字符集1,不加也行

eg:echo 192.168.198.11 | tr “.” “:”

在这里插入图片描述

echo 192.168.198.11 | tr -d “.”

在这里插入图片描述

将 echo $PATH中的":"替换为换行

在这里插入图片描述

4.cut命令——快速裁剪

4.1cut截取方法

cut截取方法
对字段进行截取和剪裁

4.2格式

格式一:cut [选项] 参数
格式二:cat 文件名 | cut [选项]

4.3选项

-d	          指定分隔符(默认分隔符为Tab)
-f 	          按字段进行截取。指定第n个字段;
-b	          以字节为单位进行截取
-c	          以字符为单位进行截取
–complement	  排除所指定的字段
–output-delimiter	更改输出内容的分隔符

4.4示例

(1)cut -d ":" -f 1-3 /etc/passwd————————以":"作为分隔符,指定第一个到第三个字段进行输出
cat /etc/passwd | cut -d ":" -f 1-3

在这里插入图片描述

 head -n 2 /etc/passwd | cut -d ":" --complement -f 2————————指定以":"作为分隔符,但是删除了第二个字段进行输出

在这里插入图片描述

 head -n 2 /etc/passwd | cut -d ":" --complement -f 1-5 --output-delimiter="@"——————————将分隔符转换为@,进行输出

在这里插入图片描述

5.split——文件拆分

split命令用于在Linux下将大文件拆分为若干小文件。

5.1格式

split 选项 参数 原始文件 拆分后文件名前缀

5.2选项

-l	指定行数对文件拆分
-b	指定文件的大小拆分

5.3示例

split -l 20 test6.txt sc
split -b 2m test6.txt dx

在这里插入图片描述

6.paste——合并文件

按照字段来进行文件的合并

6.1格式

paste [选项] 文件1 文件2

6.2选项

-d	用于指定文件的分隔符(默认情况下为制表符"\n")
-s	将列和行的内容进行互相交换

paste和cat合并有什么区别

cat是上下合并

paste是左右合并

在这里插入图片描述

7.拓展

7.1统计当前主机的连接状态

ss -nta | grep -v ‘^State’ |cut -d " " -f 1| sort | uniq -c
3 ESTAB #表示建立的 TCP 连接处于活动状态
17 LISTEN

7.2统计当前连接主机数

ss -nt | tr -s " "|cut -d " " -f 5 | sort -n | uniq -c
1 Local
2 192.168.233.21:22

[选项] 文件1 文件2

6.2选项

-d	用于指定文件的分隔符(默认情况下为制表符"\n")
-s	将列和行的内容进行互相交换

paste和cat合并有什么区别

cat是上下合并

paste是左右合并

[外链图片转存中…(img-SVyNYmtm-1686644247140)]

7.拓展

7.1统计当前主机的连接状态

ss -nta | grep -v ‘^State’ |cut -d " " -f 1| sort | uniq -c
3 ESTAB #表示建立的 TCP 连接处于活动状态
17 LISTEN

7.2统计当前连接主机数

ss -nt | tr -s " "|cut -d " " -f 5 | sort -n | uniq -c
1 Local
2 192.168.233.21:22

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-OGTtxwc3-1686644247140)(C:\Users\zhao\AppData\Roaming\Typora\typora-user-images\image-20230602114245256.png)]

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/669235.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

使用大型语言模(LLM)构建系统(七):评估1

今天我学习了DeepLearning.AI的 Building Systems with LLM 的在线课程&#xff0c;我想和大家一起分享一下该门课程的一些主要内容。之前我们已经学习了下面这些知识&#xff1a; 使用大型语言模(LLM)构建系统(一)&#xff1a;分类使用大型语言模(LLM)构建系统(二):内容审核、…

Java 10 新特性解读

前言  2018年3月21日&#xff0c;Oracle官方宣布Java10正式发布。  需要注意的是 Java 9 和 Java 10 都不是 LTS (Long-Term-Support) 版本。和过去的 Java 大版本升级不同&#xff0c;这两个只有半年左右的开发和维护期。而未 来的 Java 11&#xff0c;也就是 18.9 LTS&am…

SpringBoot基于Aop实现自定义日志注解(提供Gitee源码)

前言&#xff1a;日志在我们的日常开发当中是必定会用到的&#xff0c;在每个方法的上都会习惯性打上Log注解&#xff0c;这样系统就会自动帮我们记录日志&#xff0c;整体的代码结构就会非常优雅&#xff0c;这边我自己搭建了一个demo去实现了一些这个项目当中必定会用的功能。…

根据jar名称动态打包带版本的镜像, 并创建对应容器的脚本实现

根据jar名称动态打包带版本的镜像以及容器 利用shell脚本, 实现根据jar名称中的项目名和版本号来动态制作带版本的Docker镜像以及带版本的容器 背景 人人都逃不过的墨菲定律 事情的原因来自最近发生的一次生产环境事故: 我们在甲方那里环境中有两个服务器, 一个用于灰度测试另…

WPF开发txt阅读器16:自动编码检测

文章目录 更改编码重新载入自动编码检测更改编码并保存 txt阅读器系列&#xff1a; 需求分析和文件读写目录提取类&#x1f48e;列表控件与目录&#x1f48e;快捷键翻页字体控件绑定&#x1f48e;前景/背景颜色书籍管理系统&#x1f48e;用树形图管理书籍语音播放&#x1f48e…

Cortext-M3系统:储存器系统(2)

1、存储系统功能概览 Cortext-M3储存器有如下特点&#xff1a; 存储器映射是预定义的&#xff0c;并且还规定好了哪个位置使用哪条总线。 存储器系统支持所谓的“位带”&#xff08;bit-band&#xff09;操作。通过它&#xff0c;实现了对单一比特的原子操作&#xff0c;位带操…

STM32G0+EMW3080+阿里云实现单片机WiFi智能联网功能(一)EMW3080实现和PC之间的串口通讯

项目描述&#xff1a;该系列记录了STM32G0EMW3080实现单片机智能联网功能项目的从零开始一步步的实现过程&#xff1b; 硬件环境&#xff1a;单片机为STM32G030C8T6&#xff1b;物联网模块为EMW3080V2-P&#xff1b;网联网模块的开发板为MXKit开发套件&#xff0c;具体型号为XC…

基于tensorflow深度学习的猫狗分类识别

&#x1f935;‍♂️ 个人主页&#xff1a;艾派森的个人主页 ✍&#x1f3fb;作者简介&#xff1a;Python学习者 &#x1f40b; 希望大家多多支持&#xff0c;我们一起进步&#xff01;&#x1f604; 如果文章对你有帮助的话&#xff0c; 欢迎评论 &#x1f4ac;点赞&#x1f4…

Triton教程 --- 速率限制器

Triton教程 — 速率限制器 Triton系列教程: 快速开始利用Triton部署你自己的模型Triton架构模型仓库存储代理模型设置优化动态批处理 速率限制器 速率限制器管理 Triton 在模型实例上调度请求的速率。 速率限制器在 Triton 中加载的所有模型上运行&#xff0c;以允许跨模型优…

带你用Python制作7个程序,让你感受到端午节的快乐

名字&#xff1a;阿玥的小东东 学习&#xff1a;Python、C/C 主页链接&#xff1a;阿玥的小东东的博客_CSDN博客-python&&c高级知识,过年必备,C/C知识讲解领域博主 目录 前言 程序1&#xff1a;制作粽子 程序2&#xff1a;龙舟比赛 程序3&#xff1a;艾草挂 程序4…

基于Java高校共享单车管理系统设计实现(源码+lw+部署文档+讲解等)

博主介绍&#xff1a; ✌全网粉丝30W,csdn特邀作者、博客专家、CSDN新星计划导师、java领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战 ✌ &#x1f345; 文末获取源码联系 &#x1f345; &#x1f447;&#x1f3fb; 精…

《网络安全0-100》网络安全的未来趋势

网络安全的未来趋势 网络安全是一个永恒的话题&#xff0c;随着技术的发展 和应用&#xff0c;网络安全也面临着新的挑战和威胁。 以下是网络安全未来的趋势&#xff1a; 人工智能和机器学习&#xff1a;人工智能和机器学习已 经成为网络安全领域的热门技术。未来&#xff…

编译原理笔记11:自上而下语法分析(1)基础概念、左递归和公共左因子处理、递归下降分析(咕咕咕)

目录 自上而下分析的一般方法用推导的方法分析输入序列左递归问题及其消除&#xff08;消除左递归&#xff09;消除直接左递归消除间接左递归左递归消除算法 公共左因子问题及其消除&#xff08;提取左因子&#xff09;提取左因子 递归下降分析 词法分析&#xff0c;是把源程序…

基于物联网及云平台的光伏运维系统

系统结构 在光伏变电站安装逆变器、以及多功能电力计量仪表&#xff0c;通过网关将采集的数据上传至服务器&#xff0c;并将数据进行集中存储管理。用户可以通过PC访问平台&#xff0c;及时获取分布式光伏电站的运行情况以及各逆变器运行状况。平台整体结构如图所示。 光伏背景…

Cortext-M3系列:调试组件(9)

1、调试组件简介 在 CM3 中有很多调试组件&#xff0c;使用它们可以执行各种调试功能&#xff1a;断点、数据观察点、闪存地址重载以及各种跟踪等。软件开发人员也许永远无需了解调试组 的细节&#xff0c;因为它们通常只是由调试器及其周边工具使用的。 本文对每种调试组件做一…

基于Java学生公寓管理中心系统设计实现(源码+lw+部署文档+讲解等)

博主介绍&#xff1a; ✌全网粉丝30W,csdn特邀作者、博客专家、CSDN新星计划导师、java领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战 ✌ &#x1f345; 文末获取源码联系 &#x1f345; &#x1f447;&#x1f3fb; 精…

IDEA2022.3.3支持Jrebel and Xrebel教程

目录 前言 思路 步骤 1、下载服务并启动 推荐下载windows环境的exe文件&#xff0c;直接点开就行。 如果用linux 需要安装go环境: 下载好后启动 2、idea安装Jrebel and XRebel插件 3、激活插件 前言 由于服务平台限制&#xff0c;只支持darwin、linux和windows环境。这…

(转载)无监督学习神经网络的分类(matlab实现)

对于监督学习神经网络&#xff0c;事先需要知道与输入相对应的期望输出&#xff0c;根据期望输出与网络输出间的偏差来调整网络的权值和阈值。然而&#xff0c;在大多数情况下&#xff0c;由于人们认知能力以及环境的限制&#xff0c;往往无法或者很难获得期望的输出&#xff0…

AbstractQueuedSynchronizer源码

介绍 基于队列的抽象同步器&#xff0c;它是jdk中所有显示的线程同步工具的基础&#xff0c;像ReentrantLock/DelayQueue/CountdownLatch等等&#xff0c;都是借助AQS实现的。 public abstract class AbstractQueuedSynchronizerextends AbstractOwnableSynchronizerimplemen…

Camera 基础知识点

和你一起终身学习&#xff0c;这里是程序员Android 经典好文推荐&#xff0c;通过阅读本文&#xff0c;您将收获以下知识点: 1.1 Camera 工作原理1.2 Camera 模组组成1.3 Camera 常见缩写解释1.4 Camera 部分名词解释1.5 参考文献 一、Camera 基础知识 1.1 Camera 工作原理 外部…