首页 > 系统相关 >Linux 运维三剑客:grep、sed 和 awk 实战案例与命令参数详解

Linux 运维三剑客:grep、sed 和 awk 实战案例与命令参数详解

时间:2024-09-13 08:53:22浏览次数:3  
标签:grep log 运维 sed awk file txt 三剑客

在 Linux 运维中,grepsedawk 是三个非常强大的文本处理工具,它们在处理文本数据时发挥着重要作用。本文将通过一些实战案例,展示这三个工具的使用方法和强大功能,并对它们的命令参数进行详解。

grep:文本搜索利器

grep 是一个强大的文本搜索工具,它使用正则表达式来匹配文本模式。以下是 grep 的一些常用命令参数:

  • -i:忽略大小写进行匹配。
  • -v:反向查找,只打印不匹配的行。
  • -n:显示匹配行的行号。
  • -r:递归查找子目录中的文件。
  • -l:只打印匹配的文件名。
  • -c:只打印匹配的行数。

实战案例

  1. 搜索包含特定字符串的行

    grep 'error' /var/log/syslog  # 在 syslog 日志中搜索包含 'error' 的行
    
  2. 使用行号

    grep -n 'error' /var/log/syslog  # 显示行号
    
  3. 递归搜索

    grep -r 'error' /var/log  # 在 /var/log 目录下递归搜索包含 'error' 的文件
    
  4. 忽略大小写

    grep -i 'warning' /var/log/syslog  # 忽略大小写搜索 'warning'
    

sed:流编辑器

sed 是一个流编辑器,它可以用来执行文本替换、删除等操作。以下是 sed 的一些常用命令参数:

  • -e:直接在命令行模式上进行 sed 动作编辑。
  • -f:将 sed 的动作写在一个文件内,用 -f filename 执行 filename 内的 sed 动作。
  • -i:直接修改文件内容。
  • -n:只打印模式匹配的行。

实战案例

  1. 替换文本

    sed 's/old/new/g' file.txt  # 将文件中的 'old' 替换为 'new'
    
  2. 删除空行

    sed '/^$/d' file.txt  # 删除文件中的空行
    
  3. 追加文本

    sed '/pattern/a\new line' file.txt  # 在匹配 'pattern' 的行后面追加新行
    
  4. 使用定界符

    sed 's#old#new#g' file.txt  # 使用 # 作为定界符进行替换
    

awk:模式扫描和处理语言

awk 是一种编程语言,专门用于处理文本文件。以下是 awk 的一些常用命令参数:

  • -F:指定输入字段的分隔符。
  • -v:设置 awk 内部的变量值。
  • -f:指定一个包含 awk 脚本的文件。

实战案例

  1. 打印特定字段

    awk '{print $3}' file.txt  # 打印每行的第三个字段
    
  2. 基于条件打印

    awk '$3 > 100' file.txt  # 打印第三个字段大于100的行
    
  3. 文本格式化

    awk '{printf "%-10s %-10s\n", $1, $2}' file.txt  # 格式化打印每行的前两个字段
    
  4. 处理多字段

    awk '{sum += $1} END {print "Total:", sum}' file.txt  # 计算第一个字段的总和
    

实战案例分析

假设我们有一个日志文件 access.log,我们需要从中提取特定信息并进行处理。

  1. 使用 grep 提取包含特定 IP 地址的行

    grep '192.168.1.1' access.log
    
  2. 使用 sed 删除日志中的敏感信息

    sed 's/sensitive_info/REDACTED/g' access.log > new_log.log
    
  3. 使用 awk 统计特定状态码的出现次数

    awk '{if ($9 == "404") count++} END {print "404 count:", count}' access.log
    

通过这些实战案例,我们可以看到 grepsedawk 在文本处理中的强大能力。它们可以单独使用,也可以组合使用,以满足复杂的文本处理需求。掌握这三个工具,对于任何 Linux 运维工程师来说都是必备的技能。

标签:grep,log,运维,sed,awk,file,txt,三剑客
From: https://blog.csdn.net/qq_40797754/article/details/142135546

相关文章

  • 从小白到高手:Windows注册表基础运维全攻略
    哈喽大家好,欢迎来到虚拟化时代君(XNHCYL)。“  大家好,我是虚拟化时代君,一位潜心于互联网的技术宅男。这里每天为你分享各种你感兴趣的技术、教程、软件、资源、福利…(每天更新不间断,福利不见不散)第一章、小叙经常遇到一些Windows疑难杂症,大家都知道可以通过修改注册表的方......
  • PyTorch----模型运维与实战
    一、PyTorch是什么PyTorch由Facebook开源的神经网络框架,专门针对GPU加速的深度神经网络(DNN)编程。二、PyTorch安装首先确保你已经安装了GPU环境,即Anaconda、CUDA和CUDNN随后进入Pytorch官网​​​​​​PyTorch官网会自动显示符合你电脑配置的Pytorch版本,复制指令到cuda......
  • 在运维日常工作,"awk"的日常使用规范有哪些?
    awk是一个强大的文本处理工具,最初用于Unix系统,现在也可以在类Unix系统(如Linux和macOS)上使用。它允许你执行复杂的文本处理任务而不需要编写完整的程序。下面是一些基本概念以及awk的使用规则:基本语法awk命令的基本形式是:awk'pattern{action}'[file...]patter......
  • 桌面运维工具之打印机驱动安装
    1.前言桌面运维同学经常会处理打印机驱动安装这类工单,手动安装打印机驱动通常包含以下步骤:1.根据打印机型号网上查找对应打印机驱动2.使用cmd命令进入管理员界面3.将打印机驱动添加到window系统中人工安装需要经过三个步骤,操作繁琐,效率较低。基于此,我们想开发一个自动化安装......
  • 为什么说运维工程师做不长久,做两年就赶快转网络安全或者研发
    前言很多从事IT网络运维工作的年轻小伙伴都会有个疑问,自己做的工作很杂似乎很基础,而且重复很多年,究竟有没前途。作为过来人告诉一个总结:前途大小,工资多少跟你的岗位和职称资质没有多少关系,跟你的经验技能和平台有关系。我今天来详细讨论下IT运维工程师的出路在哪里。IT运......
  • 探索网络安全与运维:豆瓣高分图书推荐
         国内首部日志分析专著《UNIX/Linux网络日志分析与流量监控》已畅销十年,口口相传的经典力作,被清华大学等高校分享作为研究生学习读本,历经多次重印,销量突破10万册。不仅被国内400多所高校(包括港、澳、台地区高校)收藏,远销欧美等国,还被国内多本计算机专业图书和核心期刊......
  • grep和zgrep命令的简单使用-可以查看日志内容
    在Linux系统中,grep和zgrep是两个非常有用的文本搜索工具,它们用于搜索文件中的文本模式:grepgrep是一个强大的文本搜索工具,用于搜索文件中匹配特定模式的行。它的基本语法如下:grep[选项]'模式'文件名基本用法:grep'模式'文件名例如,搜索文件example.txt中......
  • JAVA运维总结篇
    写这篇文章主要目的是完成自己多年来运维JAVA应用的一个总结,相当于个人知识库,以后工作中遇到问题便于临时查阅并不断完善自己的知识体系。 Tomcat是一个开箱即用的软件,配置java环境变量即可把Tomcat进程运行起来,但要投入生产环境,有哪些需要注意的呢?(1)、性能,默认的Tomcat配置可以正......
  • 软件项目管理资料总汇(开发#实施#运维#安全#交付)
      前言:在软件项目管理中,每个阶段都有其特定的目标和活动,确保项目的顺利进行和最终的成功交付。以下是软件项目管理各个阶段的详细资料:软件项目管理部分文档清单: 工作安排任务书,可行性分析报告,立项申请审批表,产品需求规格说明书,需求调研计划,用户需求调查单,用户需求说明书......
  • 【运维自动化-配置平台】平台管理功能如何使用
    蓝鲸智云配置平台,以下简称配置平台配置平台里的平台管理功能是管理员的一些操作,比如一些全局纬度的设置1、全局配置-业务通用业务快照名称:通常不需要修改,保持平台搭建好默认业务(蓝鲸)即可拓扑最大可见层级:可根据实际业务场景自定义调整,需要注意的是,这个是全局的调整,针对每个......