文本三剑客正则表达式1

news2024/11/27 22:41:01

文章目录

  • 文本三剑客&正则表达式1
    • 1 sort
      • 1.1 sort -f
      • 1.2 sort -b
      • 1.3 sort -n
      • 1.4 sort -r
      • 1.5 sort -u
      • 1.6 sort -t
      • 1.7 sort -k
      • 1.8 sort -o
    • 2 uniq
      • 2.1 uniq -c
      • 2.2 uniq -u
      • 2.3 uniq -d
    • 3 tr
      • 3.1tr -c
      • 3.2 tr -d
      • 3.3 tr -s :
      • 3.4 tr -t
    • 4 cut
      • 4.1 cut -d
      • 4.2 cut -f
      • 4.3 cut -b
      • 4.4 cut -c
      • 4.5 cut –complement
      • 4.6 cut -output-delimiter
    • 5 split
      • 5.1 split -l
      • 5.2 split -b
    • 6 paste
      • 6.1 paste -d
      • 6.2 paste -s
    • 7 通配符
    • 8 基本正则表示式
      • 8.1 表示次数
      • 8.2 位置锚定
      • 8.3 分组
      • 8.4 扩展正则表示式
      • 8.5 举例

文本三剑客&正则表达式1

1 sort

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

1.1 sort -f

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

在这里插入图片描述

1.2 sort -b

忽略每行前面的空格

1.3 sort -n

按照数字进行排序

在这里插入图片描述

1.4 sort -r

反向排序
在这里插入图片描述

1.5 sort -u

去除重复的部分
在这里插入图片描述

1.6 sort -t

指定字段分隔符,默认使用tab键分隔

1.7 sort -k

指定排序字段

1.8 sort -o

将排序的结果转存至指定文件


2 uniq

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

2.1 uniq -c

统计连续重复的行的次数,并且合并重复的行
在这里插入图片描述

2.2 uniq -u

显示仅出现一次的行(包括不连续的重复行)
在这里插入图片描述

2.3 uniq -d

仅显示重复出现的行(的重复行)
在这里插入图片描述


3 tr

3.1tr -c

保留字符集1的字符,其他的字符(包括换行符\n)用字符集2替换
在这里插入图片描述

3.2 tr -d

删除所有属于字符集1的字符
在这里插入图片描述

3.3 tr -s :

将重复出现的字符串压缩为一个字符串,用字符集2 替换 字符集1
在这里插入图片描述

3.4 tr -t

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


4 cut

对字段进行截取和剪裁

4.1 cut -d

指定分隔符(默认分隔符为Tab)

4.2 cut -f

按字段进行截取
以":"作为分隔符,指定第一个到第三个字段进行输出
在这里插入图片描述

4.3 cut -b

以字节为单位进行截取

4.4 cut -c

以字符为单位进行截取

4.5 cut –complement

排除所指定的字段
以:为分隔符,打印除了第二个字段
在这里插入图片描述

4.6 cut -output-delimiter

更改输出内容的分隔符
以:为分隔符,将1-5列的分隔符替换成#,并打印出来
在这里插入图片描述

5 split

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

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

5.1 split -l

指定行数拆分
在这里插入图片描述

5.2 split -b

指定文件大小
在这里插入图片描述


6 paste

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

paste是左右合并
在这里插入图片描述

cat是上下合并
在这里插入图片描述

6.1 paste -d

用于指定文件的分隔符(默认情况下为制表符"\n")

6.2 paste -s

将列和行的内容进行互相交换
在这里插入图片描述

7 通配符

*:通配符匹配任意一个或多个字符
在这里插入图片描述

?:匹配一个任意字符(只能匹配一个)
在这里插入图片描述

[ ] 匹配列表中的任意单个字符
在这里插入图片描述

8 基本正则表示式

[a-zA-Z] #同时匹配大小写

  • 匹配任意单个字符,可以是一个汉字
    在这里插入图片描述

  • . 转义字符+. 表示单个一个点
    在这里插入图片描述

  • 匹配空格 [[:space:]]

8.1 表示次数

*匹配前面的字符任意次,包括0次
o不管有多少个,都能匹配出来,没有也可以匹配
在这里插入图片描述
在这里插入图片描述

. 任意长度的任意字符,不包括0次,也就是匹配所有*
o出现>=1次
在这里插入图片描述

? 匹配其前面的字符出现0次或1次,即:可有可无
o只能有1个或者没有
在这里插入图片描述

\+ 匹配其前面的字符出现最少1次,即:肯定有且 >=1 次
o至少出现一次
在这里插入图片描述

\ {n \ } 匹配前面的字符n次
o只能出现2次
在这里插入图片描述

\ {m,n \ } 匹配前面的字符至少m次,至多n次
o出现至少2次,最多5次
在这里插入图片描述

\ {,n \ } 匹配前面的字符至多n次,<=n
g出现的次数必须小于4次,包含0次
在这里插入图片描述

\ {n, \ } 匹配前面的字符至少n次
o出现2次以上
在这里插入图片描述

8.2 位置锚定

^ 行首锚定, 用于模式的最左侧

grep “^root$” 过滤出只有root的这一行

过滤出不是以“#”开头的

在这里插入图片描述

^$ 只取空行 grep “^*$”

$ 行尾锚定,用于模式的最右侧
< 或 \b 词首锚定,用于单词模式的左侧(连续的数字,字母,下划线都算单词内部)

\ > 或 \b 词尾锚定,用于单词模式的右侧
只能用于单词的匹配
在这里插入图片描述

8.3 分组

() 将多个字符捆绑在一起,当作一个整体处理
后面的数,是前面所要分组的字符串的倍数

在这里插入图片描述在这里插入图片描述

\| :或者

  • 匹配1或者2bc,有一个即可
    在这里插入图片描述

  • 匹配1abc或者2abc,有一个即可
    在这里插入图片描述

8.4 扩展正则表示式

没有\,用grep -E ,用法与基本正则表示式类似

8.5 举例

  1. 匹配座机号

025-83346023

0510-8776655

0527-9888899
在这里插入图片描述

  1. 匹配手机号

15251391719

18851996919

15264307896
在这里插入图片描述

  1. 匹配邮箱

y@126.com

544564317@qq.com

CICIfireway@126.com

aabb556644@163.com

192AAAbc44@189.com
在这里插入图片描述

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

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

相关文章

基于 SpringBoot+Vue 的家政服务管理平台

1. 背景 本系统主要是设计出家政服务管理平台&#xff0c;基于B/S构架&#xff0c;后台数据库采用了Mysql&#xff0c;可以使数据的查询和存储变得更加有效&#xff0c;可以确保家政服务管理的工作能够正常、高效的进行&#xff0c;从而提高工作的效率。总体的研究内容如下&am…

模组uart调试总结

配置驱动选项 1.1 首先通过原理图确定其串口号&#xff0c;比如UART1、UART3_HS&#xff0c;同时查看该串口引脚是否有复用功能&#xff0c;比如用作SIM卡引脚。如果有复用&#xff0c;需要在设备树配置中取消复用功能的选项&#xff0c;然后选中串口功能&#xff0c;高通平台设…

【嵌入式环境下linux内核及驱动学习笔记-(12-设备树操作函数)】

目录 1、设备树对应的数据结构1.1 struct device_node1.2 struct property 2、设备树操作函数2.1 查找字点的函数2.1.1 of_find_node_by_path2.1.2 of_find_node_by_name2.1.3 of_find_node_by_type2.1.4 of_find_compatible_node2.1.5 of_find_node_by_phandle2.1.6 of_get_ch…

Automa爬取网页数据直接入库(四)

介绍 在使用automa浏览器插件爬取数据时,可以直接通过发送请求将爬取到的网页数据持久化到数据库中 本次以360趋势图爬取后插入数据库当做测试 建立流程 首先建立打开360趋势图的流程,这个不再演示,直接从获取分析元素开始 打开要爬取的网页 点击定位元素 建立表格存储爬取…

【shell脚本】免交互操作

免交互操作 一、Here Document免交互1.1免交互概述1.2语法格式1.3实验 二、Expect2.1脚本格式2.2实验 一、Here Document免交互 1.1免交互概述 使用I/O重定向的方式将命令列表提供给交互式程序或命令&#xff0c;比如 ftp、cat 或 read 命令。是标准输入的一种替代品可以帮助…

森海塞尔及诺音曼携重磅新品亮相2023广州国际专业灯光、音响展览会

森海塞尔及诺音曼携重磅新品亮相2023广州国际专业灯光、音响展览会 以卓越产品和创新技术引领专业音频行业发展 广州&#xff0c;2023年5月16日——森海塞尔和诺音曼将于2023年5月22日至25日&#xff0c;携重磅新品及全新音频技术亮相第21届广州国际专业灯光、音响展览会。森海…

十七、Bus消息总线

目录 1、Bus消息总线介绍&#xff1a; 2、使用消息总线实现配置自动更新 2.1、方案一架构图&#xff1a; 2.2、方案二架构图&#xff08;常用&#xff09; 3、对springcloud-config-server项目进行改造 3.1、修改springcloud-config-server项目的pom文件&#xff0c;添加…

如何防范鱼叉式网络钓鱼及其他钓鱼攻击

在当今日益互联的世界中&#xff0c;远程访问已成为许多组织允许员工随时随地办公的必要条件。远程访问是一把双刃剑&#xff0c;有自身的优势&#xff0c;但也带来了重大的安全风险。网络犯罪分子一直想方设法利用远程访问系统的漏洞&#xff0c;试图通过这些漏洞发起鱼叉式网…

软件测试行业对新人友好吗?

软件测试真的算是对新人小白非常友好的学科了&#xff0c;但是你也千万不要抱有幻想&#xff0c;觉得轻轻松松就能掌握真正的技能&#xff0c;然后如愿找到高薪工作。从0到1还是需要一个过程的&#xff0c;也是需要你付出相当大的努力去学习的 随着人工智能时代的到来&#xf…

第01讲:RocketMQ入门

一、什么是消息队列 ​ 消息队列中间件是分布式系统中重要的组件&#xff0c;主要解决应用耦合&#xff0c;异步消息&#xff0c;流量削锋等问题。实现高性能&#xff0c;高可用&#xff0c;可伸缩和最终一致性架构。是大型分布式系统不可缺少的中间件。目前在生产环境&#x…

【C++进阶3-二叉搜索树】强,但没貌似还不够?

今天&#xff0c;带来二叉搜索树的讲解。 文中不足错漏之处望请斧正&#xff01; 是什么 二叉搜索树&#xff08;Binary Search Tree&#xff09;又称二叉排序树。 它可以是一棵空树&#xff0c;也可以是具有以下性质的二叉树: 若它的左子树不为空&#xff0c;则左子树上所…

《花雕学AI》不用花钱,也能和ChatGPT聊天!快来看看这五个免费客户端吧

引言 你有没有想过和一个智能的聊天机器人对话&#xff1f;一个可以陪你聊天、讲故事、写代码、模仿名人、生成歌词等等的聊天机器人&#xff1f;如果你有这样的想法&#xff0c;那么你一定要了解ChatGPT。ChatGPT是一个由OpenAI开发的人工智能聊天机器人程序&#xff0c;它使用…

基于Ajax+JSon的表格数据浏览【简单版--没连接数据库】+【连接数据库版】

目录 基于AjaxJSon的表格数据浏览【简单版--没连接数据库】 代码&#xff1a; ajax.js ch10_4.jsp student.java Query.java 运行结果&#xff1a; 点击获取表格后&#xff1a; 基于AjaxJSon的表格数据浏览【简单版--没连接数据库】 代码&#xff1a; ajax.js //声明XM…

【案例实战】SpringBoot3.x自定义封装starter实战

1.starter背景简介及作用 &#xff08;1&#xff09;什么是starter starter是SpringBoot中的一个新发明&#xff0c;它有效的下降了项目开发过程的复杂程度&#xff0c;对于简化开发操做有着很是好的效果。 starter的理念&#xff1a;starter会把全部用到的依赖都给包含进来&a…

三极管的几点应用

三极管有三个工作状态&#xff1a;截止、放大、饱和&#xff0c;放大状态很有学问也很复杂&#xff0c;多用于集成芯片&#xff0c;比如运放&#xff0c;现在不讨论。其实&#xff0c;对信号的放大&#xff0c;我们通常用运放处理&#xff0c;三极管更多的是当做一个开关管来使…

微信小程序入门05-用户登录注册接口开发

用户登录注册&#xff0c;我们先需要开发后端的接口&#xff0c;接口一般需要有入参&#xff0c;然后和数据库进行交互。 1 创建表 我们现在先实现用户的登录及注册&#xff0c;建表语句 create database diancan; use diancan; CREATE TABLE users (id INT AUTO_INCREMENT …

软件设计模式介绍与入门

目录 1、软件设计模式的起源 2、什么是设计模式&#xff1f; 2.1、设计模式的设计意图 2.2、设计模式的分类准则 3、为什么要学习设计模式 4、如何学习设计模式 5、最后 VC常用功能开发汇总&#xff08;专栏文章列表&#xff0c;欢迎订阅&#xff0c;持续更新...&#x…

毕业论文写作技巧

毕业论文的组成部分目录自定义目录 摘要&#xff08;Abstract&#xff09;绪论相关工作&#xff08;Related work&#xff09;研究方法和结果&#xff08;Method and Results&#xff09;研究方法研究结果 结论&#xff08;Conclusion&#xff09; 写好一篇论文其实就是讲好一个…

批量查询域名历史软件-域名历史快照查询工具

批量查询域名历史和域名历史快照 批量查询域名历史和域名历史快照是一种可以为您提供有关域名历史信息的工具&#xff0c;以下是该主题的详细介绍。 什么是域名历史&#xff1f; 域名历史记录是指域名在被注册前或过去的使用期间所经历的所有事件的记录。这些事件可能包括域…

SpringBoot拦截器获取Request的body数据

1. 场景 自定义Token后&#xff0c;需要在拦截器中进行token验证。在验证的过程中需要读取HttpServletRequest的body部分数据进行验证。 2. 存在问题 如果直接配置拦截器进行urlPatterns拦截&#xff0c;并进行参数验证&#xff0c;在拦截器中获取request的输入流&#xff0c…