Linux进阶--文本处理grep、sed、awk命令

devtools/2024/11/14 13:11:15/

目录

一、grep

(1)用文件查找

二、正则表达式

三、sed命令

四、awk命令 


grep、sed、awk可以称作linux里的三驾马车

一、grep

grep:一种强大的文本搜索工具,它能使用正则表达式匹配模式搜 索文本,并把匹配的行打印出来

格式:grep [options] pattern file

常见参数:

-w:word 精确查找某个关键词 pattern

-c:统计匹配成功的行的数量

-v:反向选择,即输出没有匹配的行

-n:显示匹配成功的行所在的行号

-r:从目录中查找pattern

-e:指定多个匹配模式

 【使用-i 忽略大小写,所以UTR也能被检测出来】

-f:从指定文件中读取要匹配的 pattern

-i:忽略大小写

(1)用文件查找

【首先创建一个文件,编辑文件】

【编辑好内容后,按Esc,退出编辑模式,然后按:wq退出并保存】

【在面板上输入命令】

【就可以按照文件里的内容查找啦~】

二、正则表达式

正则表达式:是对字符串操作的一种逻辑公式,就是用事先 定义好的一些特定字符、及这些特定字符的组合,组成一个 “规则字符串” ,这个“规则字符串”用来表达对字符串的 一种过滤逻辑。

【只输出查找的那一行,以W开头的那一行】

 【找以‘)’结尾的行】

 

三、sed命令

sed:流编辑器,一般用来对文本进行增删改查

用法:sed [-options] 'script' file(s)

常见参数:

-n :禁止显示所有输入内容,只显示经过sed处理的行(常用)

-e :直接在命令模式上进行 sed 的动作编辑,接要执行的一个或 者多个命令

-f :执行含有 sed 动作的文件

-r :sed 的动作支持的扩展正则(默认基础正则)

-i :直接修改读取的文件内容,不输出。

常见 'script' address :

2 ∶第 2 行

2,4 ∶第 2 行到第 4 行

2,$ ∶第 2 行到最后一行,$ 表示最后

2~3 ∶从第 2 行开始,每隔 3 行取一行2、5、8

2,+4 ∶从第 2 行到 2+4 行

/pattern/ :匹配上 pattern 的行

[!] :表示否定,取反: '2 !' 表示除了第二行

常见 'script' command :增删改查

a∶append,在指定行的后增加一行,内容为 a 的后面接的字串

【原文件】

【在第一行后添加‘hello word’】

i∶insert,在指定行的前增加一行,内容为 i 的后面接的字串

d∶delete,删除某一行或者某几行,也可以指定删除匹配上的行

c∶change,改变指定行的内容

s∶更改或替换字符串,使用格式为 's/pattern/new/[flags]' ,

把pattern替换成new,默认只替换一个,可以指定flags

y∶转换,实现字符一对一转换,格式 ‘y/abc/ABC/'

p∶print,把匹配或修改过的行打印出来,通常与–n参数合用

四、awk命令 

awk:也称 gawk,编程语言,可对文本和数据进行处理

常见参数:-F,fields,设置字段分隔符;

用法:awk [options] '{script}'→ file

基础结构: ' {script} '

匹配结构: ' /pattern/{script} '

扩展结构: 'BEGIN{script} {script} END{script}

awk 在读取一行文本时,会用预定义的字段分隔符划分每个数据字段,并分配给一个变量。

● $0 代表整个文本行;

● $1 代表文本行中的第1个数据字段;

●……

● $NF 代表文本行中的最后一个数据字段

awk 默认的字段分隔符是任意空白字符(如:空格 or 制表 符),也可以用 -F 参数自定义分隔符

 

 【这个是输出含有UTR的每一行】

【要注意是单引号还是双引号】


http://www.ppmy.cn/devtools/6458.html

相关文章

故障转移-redis

4.4.故障转移 集群初识状态是这样的: 其中7001、7002、7003都是master,我们计划让7002宕机。 4.4.1.自动故障转移 当集群中有一个master宕机会发生什么呢? 直接停止一个redis实例,例如7002: redis-cli -p 7002 sh…

项目实战之网络电话本之发送邮件名片和导出word版个人信息

1、项目介绍 1)项目功能 用户管理:分为管理员、和普通用户,设置不同用户的权限 电话本信息管理:支持管理员和普通用户对电话本的信息进行增删改操作,模糊查询(根据姓名、地址、单位) 文件批…

Ubuntu22.04下opencv4.9.0环境的搭建

目录 1、更新系统包列表:2、安装依赖项:3、下载 OpenCV 源代码:4、编译和安装 OpenCV:5、配置环境变量:6、测试1、更新系统包列表: 在终端中执行以下命令,以确保系统包列表是最新的: sudo apt update2、安装依赖项: 安装构建 OpenCV 所需的依赖项: sudo apt inst…

【GIS教程】ArcGIS做日照分析(附练习数据下载)

我国对住宅日照标准的规定是:冬至日住宅底层日照不少于1小时或大寒日住宅层日照不少于2小时(通常以当地冬至日正午12时的太阳高度角作为依据)。因冬至日太阳高度角最低,照射范围最小,如果冬至日12:00建筑物底层能够接收到阳光,那么…

基于SpringBoot+Vue的无人仓库管理系统 免费获取源码

项目源码获取方式放在文章末尾处 项目技术 数据库:Mysql5.7/8.0 数据表:8张 开发语言:Java(jdk1.8) 开发工具:idea 前端技术:vue 后端技术:SpringBoot 功能简介 (有文档) 项目获取关键字&#x…

[C语言][数据结构][链表] 双链表的从零实现!

目录 零.必备知识 0.1 一级指针 && 二级指针 0.2 双链表节点的成员列表 a. 数据 b. 后驱指针 c. 前驱指针 0.3 动态内存空间的开辟 一. 双链表的实现与销毁 1.1 节点的定义 1.2 双向链表的初始化 && 创建新节点 1.3 尾插 1.4 头插 1.5 尾删 1.6 头删 1…

关于机器学习/深度学习的一些事-答知乎问(六)

如何使用频率域变换对序列数据进行增强? 时频变换是常见的信号分析思路,同样可用于数据增强。在频率域添加噪声是方法之一。比如可以对传感器信号应用短时傅里叶变换STFT得到具有时序关系的谱特征,再在谱特征上应用两种数据增强方法。一是对…

【树莓派学习】hello,world!

系统安装及环境配置详见【树莓派学习】系统烧录及VNC连接、文件传输-CSDN博客 树莓派内置python3,可以直接利用python输出。