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

news2024/11/26 14:54:32

目录

一、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.coloradmin.cn/o/1604326.html

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

相关文章

智能电视/盒子长文字输入困难?手把手教您解决这个难题!(电视盒子跨屏输入/打字,亲测有效!)

文章目录 📖 介绍 📖🏡 演示环境 🏡📒 解决方案 📒📝 方法一📝 方法二🎈 获取方式 🎈⚓️ 相关链接 ⚓️📖 介绍 📖 在使用智能电视/电视盒子的时候,会遇到这样一个场景:需要输入一个很长的网址,或者是想要粘贴一段很长的文字。如何使用遥控器要完成…

【C语言】qsort()函数排序及其模拟实现,万物皆可排!

🔥博客主页🔥:【 坊钰_CSDN博客 】 欢迎各位点赞👍评论✍收藏⭐ 目录 1. 函数介绍 2. qsort举例排列整型变量 3. qsort举例排列结构型变量 3.1 按名字排序 3.1.1 srtcmp函数 3.2 按年龄排序 4. qsort函数模拟实现(采用冒泡的…

python怎么连接oracle

一:弄清版本,最重要!!! 首先安装配置时,必须把握一个点,就是版本一致!包括:系统版本,python版本,oracle客户端的版本,cx_Oracle的版本…

工作流 jbpm概述

文章目录 1 工作流概述2 jBPM概述3 jBPM开发环境搭建及其配置3.1 准备工作3.2 搭建jBPM开发环境3.3 加入jar包 总结 1 工作流概述 工作流(Workflow),就是“业务过程的部分或整体在计算机应用环境下的自动化”,它主要解决的是“使…

STM32 CAN过滤器细节

STM32 CAN过滤器细节 简介 每组筛选器包含2个32位的寄存器,分别为CAN_FxR1和CAN_FxR2,它们用来存储要筛选的ID或掩码 四种模式 模式说明32位掩码模式CAN_FxR1存储ID, CAN_FxR2存储哪个位必须要与CAN_FxR1中的ID一致 , 2个寄存器…

Linux网络配置和操作命令

网络配置命令 Linux系统中最常用的网络配置命令包括 ifconfig route 其中 ifconfig 用来查看和配置网络接口 通常是网卡 信息 包括网络接口设备的 IP 地址 掩码等 route 用来管理 Linux系统内核中的路由表 它最大的用途就是用来设定静态的路由表项 通常是在系统用 ifconfig 配…

内置管线升级到SBP,如何复用之前打包的AssetBundle

1)内置管线升级到SBP,如何复用之前打包的AssetBundle 2)安卓真机,在Unity 2021.3.31版本下Buffer数据异常 3)URP里CullResults.CreateSharedRendererScene下面的消耗 4)移动端是否支持曲面细分着色 这是第3…

Element——组件

element官网 https://element.eleme.cn/#/zh-CN/component/layout vscode格式化快捷键&#xff1a;shiftaltf table表格 <template><el-table:data"tableData"style"width: 100%"><el-table-columnprop"date"label"日期…

idea在controller或者service使用ctrl+alt+b进入方法后,如何返回到 进入前的那一层

idea在controller或者service使用ctrlaltb进入方法后&#xff0c;如何返回到进入方法的最外层 解决方案使用 ctrlalt ← /→← /→ 键盘上的左右键盘

Linux 搭建私有yum源仓库

一、环境准备 IP系统版本作用192.168.140.155CentOS 7.9.2009yum源仓库192.168.140.153CentOS 7.9.2009测试 准备两台服务器&#xff0c;一台作为yum源仓库&#xff0c;另一台作为测试使用。 二、搭建yum源服务器 &#xff08;无法连接外网的情况&#xff0c;需要去官网下载镜…

MobX入门指南:快速上手状态管理库

一、什么是MobX MobX 是一个状态管理库&#xff0c;它可以让你轻松地管理应用程序的状态&#xff0c;并且可以扩展和维护。它使用观察者模式来自动传播你的状态的变化到你的 React 组件。 二、安装及配置 安装 MobX 和 MobX-React&#xff1a;你可以使用 npm 或 yarn 安装这…

MDK stm32怎么生成bin文件

第一种 D:\Keil_v5\ARM\ac5.6\bin\fromelf.exe --bin -o ../../Output/atk_f407.bin ../../Output/atk_f407.axf 空格解析 D:\Keil_v5\ARM\ac5.6\bin\fromelf.exe一个空格--bin一个空格-o两个空格../../Output/atk_f407.bin ../../Output/atk_f407.axf &#xff08;注意后…

Python零基础从小白打怪升级中~~~~~~~多线程

线程安全和锁 一、全局解释器锁 首先需要明确的一点是GIL并不是Python的特性&#xff0c;它是在实现Python解析器(CPython)时所引入的一个概念。 GIL全称global interpreter lock&#xff0c;全局解释器锁。 每个线程在执行的时候都需要先获取GIL&#xff0c;保证同一时刻只…

爬虫 | 网易新闻热点数据的获取与保存

Hi&#xff0c;大家好&#xff0c;我是半亩花海。本项目是一个简单的网络爬虫&#xff0c;用于从网易新闻的热点新闻列表中提取标题和对应的链接&#xff0c;并将提取到的数据保存到一个 CSV 文件中。 目录 一、技术栈 二、功能说明 三、注意事项 四、代码解析 1. 导入所需…

html+vue编写分页功能

效果&#xff1a; html关键代码&#xff1a; <div class"ui-jqgrid-resize-mark" id"rs_mlist_table_C87E35BE"> </div><div class"list_component_pager ui-jqgrid-pager undefined" dir"ltr"><div id"pg…

MySQL(2024.4.17)

目录 1. 什么是MySQL的MVCC机制&#xff1f; 2. 如何理解InnoDB的Next-Key Lock机制&#xff1f; 3. 快照读和当前读的区别&#xff1f; 4. 如何在SQL语句中触发当前读&#xff1f; 5. MySQL默认的隔离级别是什么&#xff1f; 6. 如何避免在使用当前读时可能出现的死锁问…

【LLM】认识LLM

文章目录 1.LLM1.1 LLM简介1.2 LLM发展1.3 市面常见的LLM1.4 LLM涌现的能力 2.RAG2.1 RAG简介2.2 RAG 的工作流程2.3 RAG 和 Finetune 对比2.4 RAG的使用场景分析 3. LangChain3.1 LangChain简介3.2 LangChain的核心组件3.3 LangChain 入门 4.开发 RAG 应用的整体流程5. 环境配…

虚幻引擎源码版安装下载,点击GenerateProjectFiles.bat报错 error NU1101NuGet包问题解决参考方案

开发环境配置与源码安装使用 安装VS2022 按照官方文档安装需要的vs配置 虚幻引擎源代码下载 Epic里面下载的引擎与源代码引擎区别&#xff1a;Epic里面下载的引擎是已经编译过的它的源代码访问权限不完整&#xff0c;源代码版本提供比较完整引擎代码&#xff0c;并且可以修…

OpenHarmony社交分享类APP开发实战

介绍 本示例是一个社交分享类APP&#xff0c;搭建了不同的页面向用户提供获取社交信息等能力。为了减少频繁权限弹窗对用户的干扰&#xff0c;同时提供更小的授权范围&#xff0c;使用了安全控件做临时授权场景。当用户实际点击了某种类型的安全控件时&#xff0c;会由系统弹出…

uni.uploadFile上传图片后台接收不到数据

今天遇到一个很奇怪的问题&#xff0c;通过使用uni.uploadFile上传文件时后端接收不到文件&#xff0c;查过很多资料&#xff0c;原来是自定义了header的Content-Type问题。取消即可&#xff0c;另把自定义文件上传的代码贴出来。 分析&#xff1a;当我们加上请求头的时候 不…