Linux运维命令-三剑客(grep awk sed)

目录

1.简介

2.命令详解

2.1.grep命令

2.1.1.功能

2.1.2.常见的使用场景及命令

2.2.awk命令

2.2.1.功能

2.2.2.常见的使用场景及命令

2.3.sed命令

2.3.1.功能

2.3.2.常见的使用场景及命令

3.总结


1.简介

        在Linux中,grep、awk、sed 命令常被称为“三剑客”。这三种命令是文本处理和数据操作的强大工具,可以非常高效地在终端中对数据进行处理。掌握这三个命令对于文本处理、搜索显得尤为重要。

2.命令详解

2.1.grep命令

2.1.1.功能

        grep命令(Global Regular Expression Print)主要用于在文件中搜索匹配的字符串,并将匹配的行输出。

2.1.2.常见的使用场景及命令

        a.在当前目录查找匹配中字符串的文件,例如在当前目录且后缀名为 txt 的文件中,查找字符串 hello

 

         命令:grep  "hello"  ./*.txt

        如果想要精确匹配可以加上-w参数,这样hello123将无法匹配中hello,同时如果需要显示行号可以加上-n参数,显示效果如下:                    

         

        b.在当前目录递归查找所有能匹配中字符串的文件,例如在当前目录递归查询所有文件中包含字符串hello的文件

        可以看到,递归查询只需要在示例a中加入 -r 参数即可

        命令:grep  "hello"  ./ -rn

        c.忽略大小写匹配,例如在当前目录递归查询所有文件中包含字符串hello的文件,hello不区分大小写

        可以看到,只需要加入 -i 参数即可

        命令:grep  "hello"  ./ -rni 

        d.反转匹配,输出不包含匹配字符串的行,例如在当前目录递归查询所有文件中不包含字符串hello的文件

        可以看到,只需要加入 -v 参数即可

        命令:grep  "hello"  ./ -rnv

 

2.2.awk命令

2.2.1.功能

        awk 是一个强大的文本处理工具,通常用于按列处理数据,可以对每一行数据进行操作。

2.2.2.常见的使用场景及命令

        例如我现在有一个test.txt文件,文件内容如下:

        a.输出当前文件的所有class

         命令:sed '1d' test.txt | awk -F ',' '{print $3}'

        sed '1d' test.txt用于从第二行开始输出,awk -F ',' '{print $3}' 用于按照","切分每一列,然后输出第三列,即输出class对应的属性列。同理我们可以同时输出name age

        命令:sed '1d' test.txt | awk -F ',' '{print $1,$2}'

         b.对某一列的值进行累加,例如可以计算age的总和

        命令:sed '1d' test.txt | awk -F ',' '{print $2}' | gawk '{ sum += $1 }; END { print sum }' 

         sed '1d' test.txt | awk -F ',' '{print $2}'用于输出第二列,也就是age,gawk '{ sum += $1 }; END { print sum }' 用于对输出的值做累加并打印结果。

2.3.sed命令

2.3.1.功能

         sed(Stream Editor)是一个流编辑器,用于按行处理和编辑文本流。它特别适合对文本进行替换、插入、删除等操作。

2.3.2.常见的使用场景及命令

        例如我现在有一个test.txt文件,文件内容如下:

         a.输出文件第二行开始的所有行

        命令:sed '1d' test.txt

        b.输出指定区间的行,例如输出2-3行的所有内容

        命令:sed -n '2,3p' test.txt

        c.删除指定区间的行,例如删除2-4行的所有内容

        命令:sed -i '2,4d' test.txt

        

        d.替换目标字符串为指定字符串,例如将文件中的age替换为width

         命令:sed -i 's/age/width/g' test.txt

         注:-g参数表示 global(全局)替换,它会替换每行中的所有匹配项。

3.总结

        掌握linux命令三剑客功在平时,要经常使用才可以熟练运用其特性,提高办公效率。

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

浅析 Redis 分片集群 Cluster 原理、手动搭建、动态伸缩集群、故障转移

大家好,我是此林。 之前的文章中分享了 Redis 集群方案的一种:主从集群哨兵机制 浅谈 Redis 主从集群原理(一)-CSDN博客 浅谈 Redis 主从复制原理(二)-CSDN博客 这种模式有什么缺点呢? 1. 虽…

Javaweb后端数据库多表关系一对多,外键,一对一

多表关系 一对多 多的表里,要有一表里的主键 外键 多的表上,添加外键 一对一 多对多 案例

PhotoLine绿色版 v25.00:全能型图像处理软件的深度解析

在图像处理领域,PhotoLine以其强大的功能和紧凑的体积,赢得了国内外众多用户的喜爱。本文将为大家全面解析PhotoLine绿色版 v25.00的各项功能,帮助大家更好地了解这款全能型的图像处理软件。 一、迷你体积,强大功能 PhotoLine被誉为迷你版的Photoshop,其体积虽小,但功能却…

Windows 11【1001问】修改主题隐藏或删除Win11桌面“了解此图片”

在<Windows 11【1001问】如何安装Windows 11>篇幅中我们第一安装完成Windows 11还未开始其他操作的时候会发现桌面上有一个“了解此图片”的图标是之前没见过的&#xff1b;而在Windows 11中&#xff0c;“了解此图片”图标是微软引入的一项功能&#xff0c;旨在让用户通…

Spring MVC框架二:创建第一个MVC程序

精心整理了最新的面试资料&#xff0c;有需要的可以自行获取 点击前往百度网盘获取 点击前往夸克网盘获取 有两种方式 利用配置 1、利用IDEA新建一个Maven项目&#xff0c;添加一个web支持 2、导入常用的依赖 <dependencies><dependency><groupId>junit&…

go基本语法

跟Java比较学习。 hello word 示例代码 test1.go文件&#xff1a; // 包路径 package main// 导入模块&#xff0c;下面两种都行 import ("fmt" ) import "log"// main方法 func main() {log.Print("hello word !!!")fmt.Print("hello …

《零基础学会!如何用 sql+Python 绘制柱状图和折线图,数据可视化一看就懂》

在数据驱动的时代&#xff0c;MySQL 是最常用的关系型数据库管理系统之一&#xff0c;广泛应用于各类数据存储和处理场景。数据分析的过程不仅仅是收集数据&#xff0c;还包括数据的清洗、转换、查询以及最终的报告和可视化。在本文中&#xff0c;我们将通过实际案例来介绍如何…

【博资考2】网安学院-北航网安基础部分(简洁版)

【博资考2】网安学院-北航网安基础部分 写在最前面北航网安学院考纲&#xff08;二&#xff09;知识要点&#xff08;三&#xff09;快速梳理1. **单钥密码体制**2. **双钥密码体制**3. **消息认证与杂凑函数**4. **数字签名**5. **密码协议**6. **数字证书与公钥基础设施 (PKI…

【Transformer模型学习】第二篇:多头注意力机制

文章目录 0. 前言1. 注意力机制&#xff08;Attention&#xff09;概述2. Q、K、V矩阵是怎么来的&#xff1f;3. 缩放点积注意力&#xff08;Scaled Dot-Product Attention&#xff09;4. 多头注意力&#xff08;Multi-Head Attention&#xff09;5. 多头注意力的好处6. 总结 0…

网络运维学习笔记(DeepSeek优化版)002网工初级(HCIA-Datacom与CCNA-EI)子网划分与协议解析

文章目录 子网划分与协议解析1. VLSM与CIDR技术解析1.1 VLSM&#xff08;Variable Length Subnetwork Mask&#xff0c;可变长子网掩码&#xff09;1.2 CIDR&#xff08;Classless Inter-Domain Routing&#xff0c;无类域间路由&#xff09; 2. 子网划分方法与计算2.1 常规划分…

将VsCode变得顺手好用(1

目录 设置中文 配置调试功能 提效和增强相关插件 主题和图标相关插件 创建js文件 设置中文 打开【拓展】 输入【Chinese】 下载完成后重启Vs即可变为中文 配置调试功能 在随便一个位置新建一个文件夹&#xff0c;用于放置调试文件以及你未来写的代码&#xff0c;随便命名但…

在线疫苗预约小程序(论文源码调试讲解)

第4章 系统设计 用户对着浏览器操作&#xff0c;肯定会出现某些不可预料的问题&#xff0c;但是不代表着系统对于用户在浏览器上的操作不进行处理&#xff0c;所以说&#xff0c;要提前考虑可能会出现的问题。 4.1 系统设计思想 系统设计&#xff0c;肯定要把设计的思想进行统…

MySql数据库运维学习笔记

数据库运维常识 DQL、DML、DCL 和 DDL 是 SQL&#xff08;结构化查询语言&#xff09;中的四个重要类别&#xff0c;它们分别用于不同类型的数据库操作&#xff0c;下面为你简单明了地解释这四类语句&#xff1a; 1. DQL&#xff08;数据查询语言&#xff0c;Data Query Langu…

Redis 集群的三种模式:一主一从、一主多从和多主多从

本文记述了博主在学习 Redis 在大型项目下的使用方式&#xff0c;包括如何设置Redis主从节点&#xff0c;应对突发状况如何处理。在了解了Redis的集群搭建和相关的主从复制以及哨兵模式的知识以后&#xff0c;进而想要了解 Redis 集群如何使用&#xff0c;如何正确使用&#xf…

LangChain大模型应用开发:基于RAG实现文档问答

介绍 大家好&#xff0c;博主又来给大家分享知识了。随着大模型应用的不断发展&#xff0c;很多开发者都在探索如何更好地利用相关工具进行开发。那么这次给大家分享的内容是使用LangChain进行大模型应用开发中的基于RAG实现文档问答的功能。 好了&#xff0c;我们直接进入正…

零样本学习 zero-shot

1 是什么 2 如何利用零样本学习进行跨模态迁移&#xff1f; demo代码 安装clip pip install ftfy regex tqdm pip install githttps://github.com/openai/CLIP.git import torch import clip from PIL import Image# 加载 CLIP 模型 device "cuda" if torch.cuda.i…

防火墙双机热备---VRRP,VGMP,HRP(超详细)

双机热备技术-----VRRP&#xff0c;VGMP&#xff0c;HRP三个组成 注&#xff1a;与路由器VRRP有所不同&#xff0c;路由器是通过控制开销值控制数据包流通方向 防火墙双机热备&#xff1a; 1.主备备份模式 双机热备最大的特点就是防火墙提供了一条专门的备份通道&#xff08;心…

面试八股文--数据库基础知识总结(1)

1、数据库的定义 数据库&#xff08;DataBase&#xff0c;DB&#xff09;简单来说就是数据的集合数据库管理系统&#xff08;Database Management System&#xff0c;DBMS&#xff09;是一种操纵和管理数据库的大型软件&#xff0c;通常用于建立、使用和维护数据库。数据库系统…

怎么在Github上readme文件里面怎么插入图片?

环境&#xff1a; Github 问题描述&#xff1a; 怎么在Github上readme文件里面怎么插入图片&#xff1f; https://github.com/latiaoge/AI-Sphere-Butler/tree/master 解决方案&#xff1a; 1.相对路径引用 上传图片到仓库 将图片文件&#xff08;如 .png/.jpg&#xff…

Unity自定义树(Tree)

一、创建自定义树 右键——3D Object——Tree 树的大致形态&#xff1a; 二、主干树的整体设置 Distribution Tree Seed&#xff1a;树种子&#xff0c;调节此参数就可获得不同形态的树桩 Area Spread&#xff1a;区域的大小 Ground Offset&#xff1a;树距离初始地面的偏移…