linux系统grep文本三剑客之一

news2024/11/24 0:57:56

文章目录

  • 一、grep常用选项
  • 二、正则表达式
  • 三、sort命令
  • 四、tr命令
  • 五、cut命令
  • 六、split命令
  • 七、paste命令
  • 八、正则表达式
  • 总结

一、grep常用选项

grep:文本三剑客之一,对文本内容进行过滤,支持正则表达式,针对行来进行处理。
-m:跟数字,匹配几次后停止。
在这里插入图片描述
-v:显示不被匹配到的行,取反。
在这里插入图片描述
-i:忽略大小写。
在这里插入图片描述
-n:显示匹配到的行号。
在这里插入图片描述
-c:统计匹配的行数。
在这里插入图片描述
-o:仅显示匹配到的字符串。
在这里插入图片描述
-A:跟数字,匹配到包含当前行往下几行。
在这里插入图片描述
-B:跟数字,匹配到包含当前行往上几行。
在这里插入图片描述
-C(大写):跟数字,匹配到包含当前行的上下各几行的内容。
在这里插入图片描述
-e:实现多个选项间的逻辑or关系。
在这里插入图片描述
-w:匹配整个单词。
在这里插入图片描述
-E:相当于扩展正则表达式,和egrep相同,一个意思。
格式:grep -E ‘正则表达式’ 文件名
在这里插入图片描述
-f:处理两个文件中的相同内容,把第一个作为匹配条件。
在这里插入图片描述
-r 递归目录,但不处理软链接
-R 递归目录,但处理软链接

二、正则表达式

^$:表示空行。
在这里插入图片描述在这里插入图片描述

例:grep -n “^root$” test1.txt
在这里插入图片描述

三、sort命令

sort排序命令:以行为单位对文件内容进行排序,也可以根据不同的数据类型来排序。
sort 命令用于对文本文件进行排序。它可以按照字典序、数字大小、日期等方式对文本内容进行排序。
常用选项:
-f:忽略大小写,默认情况大写会排在前面。
在这里插入图片描述
在这里插入图片描述
-b:忽略每行前面的空格。
-n:按照数字进行排序,正向排序。
在这里插入图片描述
加-r反向排序。
在这里插入图片描述
-u:去重。
在这里插入图片描述
-o:将排序后的结果输出到指定文件。在这里插入图片描述
uniq:快捷去重。
常用选项:
-c:统计连续重复的行的次数,并且合并重复的行。
在这里插入图片描述

四、tr命令

tr:对来自标准输入的字符进行替换、压缩、删除。
tr是一条Linux命令行命令,用于替换或删除文本文件中的字符。通过使用tr命令,可以将输入流中的字符,例如标点符号或换行符等,转换成其他字符,或者完全将它们删除。tr命令通常与管道(|)和重定向(>)一起使用,以对文本数据进行操作。
常用选项:
-c:保留字符集1的字符,其他的字符用字符集2进行替换。
例:echo abc | tr -c ‘ab’ ‘b’
在这里插入图片描述
-d:删除所有字符集1的字符。
例:echo abc | tr -d “ab”
在这里插入图片描述
-s:把重复出现的字符串压缩成一个,用前一个字符替换成后一个字符。
例:cat test.txt | tr -s “t” “b”
在这里插入图片描述

五、cut命令

cut命令是Linux操作系统中的一个文本处理命令,它用于从文本文件或标准输入中按列切割数据,然后将切割后的结果输出到标准输出。cut命令可以选择要切割的字节、字符和字段,并可以使用选项来定义定界符(如空格或制表符)。在实际应用中,cut命令通常与其他命令结合使用,以实现更复杂的文本处理任务。
格式:cut 选项 参数
常用选项:
-d:指定分隔符。
-f:按字段进行截取,截取第几段。
-b:以字节为单位进行截取。
-c:以字符为单位进行截取。
-complement:排除所有指定的字段。
-output-delimiter:更改输出内容的分隔符。
例:cut -d “:” -f 1-3 /etc/passwd意思是截取/etc/passwd文件中以冒号为分割的第一段到第三段内容。
在这里插入图片描述
例:head -n 2 /etc/passwd | cut -d “:” --complement -f 2意思:截取/etc/passwd文件中的前两行,然后删除以冒号分割的第二段内容。
在这里插入图片描述

六、split命令

split 命令是在 Linux系统上用于将一个大文件拆分成多个小文件的工具。拆分可以按行数、字节数或文件大小等多种方式完成。
-l:指定行数拆分。
-d:指定文件大小写拆分。
例:split -l 20 passwd passwd1:对passwd文件按20行进行拆分。
在这里插入图片描述

七、paste命令

paste合并文件,
paste合并和cat合并有什么区别?
paste是左右合并两个文件的内容。
在这里插入图片描述

cat是上下合并两个文件中的内容。
在这里插入图片描述
统计当前主机的连接状态
ss -nta | grep -v ‘^state’ | cut -d " " -f 1 | sort | uniq -c
在这里插入图片描述
统计当前主机的连接数
在这里插入图片描述

八、正则表达式

正则表达式:有一类特殊字符即文本字符所编写的模式。
类似于增强版的通配符功能,但与通配符不同,通配符功能是用来处理文件名,
正则表达式是处理文本内容中的字符。
*:通配符,匹配任意一个或多个字符;
?:通配符,匹配一个任意字符;
. 匹配任意单个字符,可以是一个汉字

总结

使用grep命令可以过滤文件内容
使用sort命令可以对文本内容进行排序
使用tr命令可以对字符进行替换
使用cut命令可以快捷裁剪

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

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

相关文章

【C++】 Qt-信号与槽

文章目录 基本概念添加信号与槽方法一方法二 自定义信号与槽CheckBox自定义QMessageBox自定义信号 信号与槽多对多一个信号连接多个槽多个信号连接一个槽一个信号连接一个信号连接一个槽 断开连接方法一方法二判断是否连接成功 基本概念 信号(signal)和…

chatgpt赋能python:Python自动执行函数——提高生产力的利器

Python自动执行函数 —— 提高生产力的利器 Python作为一种高级编程语言,具有强大的自动化能力,可以轻松实现多种任务的自动执行,从而提高生产力和效率。这篇文章将介绍如何使用Python自动执行函数,以及它对于SEO的重要意义。 什…

Flutter Dart类

目录 类 构造函数 命名构造函数 重定向构造函数 常量构造函数 工厂构造函数 Getters 和 Setters 初始化列表 可覆写的操作符 类 创建一个dart文件,名称全小写,里面的类可以按照驼峰命名法。文件名和类名可以不保持统一,这个跟Java有明…

Scrapy: 一个强大的 Python 爬虫框架--介绍--下载--启动!!

目录 Scrapy 影响力 介绍 主要特点 架构 运行流程 基本使用 安装 创建 Scrapy 项目 创建爬虫 爬虫包含的内容 运行爬虫 Scrapy 影响力 作为目前爬虫主流框架之一,Scrapy的影响力和应用范围非常广泛: 根据GitHub上的数据,Scrapy是一…

ERR! code ERR_SOCKET_TIMEOUT

问题 安装npm包,终端报错ERR! code ERR_SOCKET_TIMEOUT ERR! code ERR_SOCKET_TIMEOUT详细问题 笔者运行以下命令重新安装依赖项: npm install控制台报错,具体报错信息如下 npm ERR! code ERR_SOCKET_TIMEOUT npm ERR! network Socket t…

【C++】【VLD】VLD检测内存泄漏

【C】【VLD】VLD检测内存泄漏 C/C 程序越复杂,内存的管理显得越重要,稍有不慎就会出现泄漏。如果内存泄漏不是很严重,在短时间内对程序不会有太大影响,这也使得内存泄漏问题有很强的隐蔽性,不易被发现。 然而不管内存…

计算机网络——传输层

序言 计算机网络中的传输层在当今的社会起到了什么作用? 计算机网络中的传输层在通信和数据传输方面起着至关重要的作用。传输层是计算机网络体系结构中的一层,它负责提供端到端的可靠数据传输和通信服务;有着以下几个方面作用:可…

3-css高级特效-2

01-空间转换 空间转换简介 空间:是从坐标轴角度定义的 X 、Y 和 Z 三条坐标轴构成了一个立体空间,Z 轴位置与视线方向相同。空间转换也叫 3D转换属性:transform 平移 transform: translate3d(x, y, z); transform: translateX(); transfor…

chatgpt赋能python:Python聊天机器人程序:把智能带入聊天

Python聊天机器人程序:把智能带入聊天 在数字化时代,机器人指引和客户服务变得越来越流行。为了快速而有效地满足这种需求,聊天机器人被广泛研究与开发。Python是在这方面一个非常受欢迎的编程语言,能够快速地构建聊天机器人。在…

【C++】win 10 / win 11:Visual Studio 2022 社区版免费下载与安装

目录 一、Visual Studio 2022 下载 二、Visual Studio 2022 安装 三、Visual Studio 2022 快捷方式创建 四、Visual Studio 2022 使用 一、Visual Studio 2022 下载 Visual Studio 2022 官方下载https://visualstudio.microsoft.com/zh-hans/downloads/首先登陆 Visual Stu…

基于Java医院在线挂号预约系统设计实现(源码+lw+部署文档+讲解等)

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

Jmeter简单实现登录测试

目录 前言: 1、添加线程组--在测试计划上右击-添加-Threads-线程组 2、添加http请求默认值--在线程组上右击-添加-配置元器件-http请求默认值 3、添加sampler-http请求-登录界面 4、添加sampler-http请求-登录-携带用户名和密码 5、创建存放用户名和密码的文件…

数通王国历险记之TCP协议下的三大协议的验证实验

系列文章目录 数通王国历险记(1) 前言 一,我们要先知道PDU是什么? 二、TCP协议下的三大协议的验证实验 1.FTP的验证实验 1,拓扑图 2.将lsw4配置一下 3,FTP服务器端开启FTP服务: 4&#x…

SpringBoot 如何使用 TestEntityManager 进行 JPA 集成测试

SpringBoot 如何使用 TestEntityManager 进行 JPA 集成测试 简介 在开发过程中,JPA 是常用的持久化框架之一,它可以帮助我们将对象映射到数据库中,并提供了一系列操作数据库的 API。在进行 JPA 的开发和测试时,我们通常会使用一…

Mybatis实现分页功能

1、关于逻辑分类和物理分页 分页可分为逻辑分页和物理分页 逻辑分页是一次性把全部数据查询加载进内存 ,然后再进行分页。这样优点是减少IO次数,适合频繁访问、数据量少的情况。缺点是不适合大数据量,容易造成内存溢出。物理分页是利用limi…

Android JVM 原理简析

当我们在开发 Android 应用程序时,我们实际上是在使用 Java 编程语言编写代码,并将其编译为在 Android 上运行的字节码。这些字节码最终在 Android 设备上的 Java 虚拟机(JVM)中执行。 Android JVM的意义 学习 Android JVM&#…

Java基础知识面试题

Java概述 何为编程 编程就是使用某种程序设计语言编写程序代码让计算机解决某个问题 为了使计算机能够理解人的意图,人类就必须要将需解决的问题的思路、方法、和手段通过计算机能够理解的形式告诉计算机,使得计算机能够根据人的指令一步一步去工作&a…

Spring相关API

⭐作者介绍:大二本科网络工程专业在读,持续学习Java,努力输出优质文章 ⭐作者主页:逐梦苍穹 ⭐所属专栏:JavaEE、Spring SpringAPI 1、继承体系2、 getBean() 1、继承体系 上述继承体系中的主要类和接口包括&#xff1…

WebRTC-STUN协议详解

1、STUN协议概述 STUN(Session Traversal Utilities for NAT)NAT会话穿透工具,STUN是一个Client/Server协议,支持请求/响应类型、指示类型两种类型。STUN作为ICE(Interactive Connectivity Establishment,…

【需求实现】输入多少就输出多少的拟合任务如何实现(一):数据集分割

神经网络中输入多少数据就输出多少数据的情况如何实现 导读数据集长什么样?怎么分割数据集?时间窗口分析模板我知道你很急,但你先别急 换个思路 导读 在实习的过程中遇到了这样一种需求:给定一条序列,并另外给定一条期…