Linux命令 —— grep/sed

news2024/11/13 15:16:42

一、grep命令

grep是Linux中最常用的“文本处理工具”之一,grep与sed、awk合称为Linux中的三剑客。
grep的全称为: Global search Regular Expression and Print out the line
所以,从grep的全称中可以了解到,grep是一个可以利用”正则表达式”进行”全局搜索”的工具,会在文本文件中按照指定的正则进行全局搜索,并将搜索出的行打印出来。

  1. grep str file ::从file中搜索str字符串。
  2. grep -c str file:统计str出现的行数。
  3. grep -i str file-i 忽略大小写。
  4. grep -n str file-n输出的时候,会显示行号。

二、sed命令

2.1 介绍

sed 是一种在线编辑器,它一次处理一行内容。处理时,把当前处理的行存储在临时缓冲区中,称为“模式空间”(pattern space),接着用sed命令处理缓冲区中的内容,处理完成后,把缓冲区的内容送往屏幕。接着处理下一行,这样不断重复,直到文件末尾。Sed主要用来自动编辑一个或多个文件;简化对文件的反复操作;编写转换程序等。

在这里插入图片描述

sed的作用
① 取行、过滤、替换修改文件内容;
② 后向引用。

命令格式
sed 选项 '条件动作' 文件

选项-n表示默认不输出,只输出符合条件的行
条件动作:定位之后操作。

2.2 查找

以123.log为例

  1. 取出第二行
    sed -n '2p' 123.log
    取出文件的第二行,并进行输出。
    p的含义是输出。
  2. 取出第二行到第五行
    sed -n '2,5p' 123.log
  3. 取出包含root字符串的所有行
    sed -n '/root/p' 123.log
  4. 查询str1到str2的所有行
    sed -n '/str1/,/str2/ p 123.log'
    可以用于过滤出从某个时间到某个时间的所有日志记录。注意:str1和str2必须都存在才可以生效。
  5. 查询多个行
    sed -n '2p;5p' 123.log
  6. 以指定步长的方式查询
    sed -n '1~3p' 123.log
    从第一行开始,步长为三,进行查询。

2.3 替换

语法:sed 's#oldstr#newstr#g' 123.log
s : substitute 替换
g : global 全局
不加g时,只替换第一次出现的位置。
注意:

  1. 执行这条命令,并没有真实地去修改文件。如果要作用到文件上,需要增加-ised -i 's#old#new#g' 123.log
  2. -i.bak 可以实现先备份在修改内容;
  3. 命令中不是必须使用#,只要是三个一样的符号都可以。

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

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

相关文章

运维开发之堡垒机(Fortress Machine for Operation and Development)

💝💝💝欢迎来到我的博客,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。 推荐:Linux运维老纪的首页…

十种果冻的做法

菠萝果冻 1.在菠萝的1/5处切开,切去顶做盖子用,用水果刀在四周划一圈使皮和果肉分离 2.注意底部切透了,用水果刀把菠萝肉挖出,菠萝肉切丁用盐水浸泡备用 3.把菠萝丁放入料理机中加入少许纯净水,打成菠萝汁备用 4.打好…

伊犁-linux root 密码忘记咋办

1 root 密码忘记了 或者reboot 重启之后在引导界面 按住 e 进入如下界面 然后按住ctrlx 进入这个界面 root 修改成功

为什么512G的固态硬盘,电脑显示只有476G可用?

硬盘的标称容量与操作系统显示的可用容量存在差异,这是由于硬盘制造商和操作系统在计算容量时采用不同的进制标准所致。硬盘制造商通常使用10进制来标注硬盘容量,即1GB等于1000MB,而操作系统则使用2进制,即1GB等于1024MB。因此&am…

无人机视角电力巡检资产检测与异常判别数据集

无人机视角电力巡检资产检测与异常判别,资产检测关注17类目标,共10000余张无人机图像,json方式标注,类别如下: 1.Spiral Damper - 螺旋阻尼器 2.Stockbridge Damper - 斯托克布里奇阻尼器 3.Glass Insulator - 玻璃绝缘…

双击就可以打开vue项目,而不用npm run dev

右键点击桌面或其他位置,选择“新建” -> “快捷方式”,在“对象的位置”处直接输入“npm run dev”,然后下一步 自定义一个快捷方式名称 完成后,桌面会创建一个快捷方式,右键快捷方式选择属性,可以看…

智慧火灾应急救援航拍检测数据集(无人机视角)

智慧火灾应急救援。 无人机,直升机等航拍视角下火灾应急救援检测数据集,数据分别标注了火,人,车辆这三个要素内容,29810张高清航拍影像,共31GB,适合森林防火,应急救援等方向的学术研…

免费音乐剪辑软件大揭秘:2024 大学生的音乐创作利器

对于音乐爱好者而言,如果你萌生了尝试音乐剪辑的念头,不妨先从探索一些免费工具开始。在此,我愿分享几款我个人体验过的、值得一试的音乐剪辑免费软件,希望能为你的音乐探索之旅增添乐趣与灵感。 1.福晰音频剪辑 链接直达>&g…

Java servlet《网吧机房管理系统浅析》

网吧机房管理系统在网吧运营中起着至关重要的作用。 对于用户而言,该系统提供了便捷的登录方式,通过用户名和密码可准确显示所在网吧机房号,便于快速定位。同时,合理的机房分配功能确保用户获得良好上网体验。遇到问题时&#xff…

Highcharts甘特图基本用法(highcharts-gantt.js)

参考官方文档: https://www.highcharts.com/docs/gantt/getting-started-gantt https://www.highcharts.com/demo/gantt/project-management https://www.hcharts.cn/demo/gantt 链接在下面按需引入 https://code.highcharts.com/gantt/highcharts-gantt.js htt…

【C语言】自定义类型——联合和枚举

目录 一、联合体(共用体) (1)联合体类型的声明 (2)联合体类型的特点 (3)联合体和结构体的比较 (4)联合体大小的计算 (5)联合体的…

STM8L101低功耗的理解

一.通过降低时钟频率来降低功耗: 规格书如图 1.code 从flash启动,主频率是16Mhz时,功耗测量2.51ma左右,对应程序如下: 2.code从flash启动,主频率是2Mhz时(上电默认值),功…

Android 如何使用jdk命令给应用/APK重新签名。

写在前面:本篇文章介绍Windows命令行中,如何使用jdk命令给已经签过名的apk重新签名。 使用工具:jarsigner。jarsigner是jdk自带的工具,签名之前确保Windows电脑中已安装jdk。我的环境如下:   后续操作步骤如下&…

力扣(leetcode)每日一题 2332 坐上公交的最晚时间

题目: 给你一个下标从 0 开始长度为 n 的整数数组 buses ,其中 buses[i] 表示第 i 辆公交车的出发时间。同时给你一个下标从 0 开始长度为 m 的整数数组 passengers ,其中 passengers[j] 表示第 j 位乘客的到达时间。所有公交车出发的时间互…

(七)使用SoapUI工具调用WebAPI

1.调用一个无参数的GET请求 [HttpGet(Name "GetWeatherForecast")]public IEnumerable<WeatherForecast> Get(){return Enumerable.Range(1, 5).Select(index > new WeatherForecast{Date DateTime.Now.AddDays(index),TemperatureC Random.Shared.Next(…

QFramework v1.0 使用指南 更新篇:20240918. 新增 BindableList

20240918. 新增 BindableList BindableProperty 很好用&#xff0c;但是不支持 List 等集合。 而 Bindable List 功能群友呼吁了很久了。 应群友要求&#xff0c;笔者实现了 Bindable List。 基本使用方式如下: using System; using UnityEngine; using UnityEngine.UI;na…

最新版本TensorFlow训练模型TinyML部署到ESP32入门实操

最新版本TensorFlow训练模型TinyML入门实操 1.概述 这篇文章介绍微型嵌入式设备的机器学习TinyML&#xff0c;它们的特点就是将训练好的模型部署到单片机上运行。 2.TensorFlow深度学习原理 TensorFlow开源项目是由google研发的一个嵌入式机器学习工具&#xff0c;通过调用…

智慧安防监控EasyCVR视频汇聚管理平台如何修改视频流分辨率?

智慧安防监控EasyCVR视频管理平台能在复杂的网络环境中&#xff0c;将前端监控设备进行统一集中接入与汇聚管理。EasyCVR平台支持H.264/H.265视频压缩技术&#xff0c;可在4G/5G/WIFI/宽带等网络环境下&#xff0c;传输720P/1080P/2K/4K高清视频。视频流经平台处理后&#xff0…

高质量的翻译:应用程序可用性和成功的关键

在日益全球化的应用市场中&#xff0c;开发一款优秀的产品只是成功的一半。另一半&#xff1f;确保你的用户&#xff0c;无论他们在哪里或说什么语言&#xff0c;都能无缝理解和使用它。这就是高质量翻译的用武之地——不是事后的想法&#xff0c;而是应用程序可用性和最终成功…

如何写一个自动化Linux脚本去进行等保测试--引言

#我的师兄喜欢给我的休闲实习生活加活&#xff0c;说是让我在实习期间写一个自动化脚本去进行等保测试。呵呵哒。 怎么办呢&#xff0c;师兄的指令得完成&#xff0c;师兄说让我使用Python完成任务。 设想如下&#xff1a; 1、将Linux指令嵌入到python脚本中 2、调试跑通 …