Linux三剑客 grep、sed和awk浅析

grepsedawk是文本处理中最强大的三个命令行工具。它们在Linux中广泛用于文本搜索、替换、格式化和报告,下面我将详细介绍相关语法和使用案例。

grep (Global Regular Expression Print)

grep是一个模式搜索工具,它使用正则表达式来搜索文本,并输出匹配的行。

基本语法:

grep [options] pattern [file...]

常用选项:

  • -i: 忽略大小写。
  • -v: 反转匹配,只输出不匹配的行。
  • -r or -R: 递归搜索目录。
  • -n: 显示匹配的行号。
  • -l: 只输出包含匹配的文件名,而不是匹配的内容。

使用示例:

grep 'pattern' filename.txt  # 在文件中搜索字符串'pattern'grep -r 'pattern' /path/to/directory/  # 递归搜索目录中匹配'pattern'的行grep -i 'pattern' filename.txt  # 忽略大小写搜索'pattern'grep -n 'pattern' filename.txt  # 显示匹配'pattern'的行及其行号

sed (Stream Editor)

sed是一个流编辑器,它用于对文本数据的流进行过滤和转换。

基本语法:

sed [options] script [inputfile...]

常用选项:

  • -e script: 添加要执行的脚本。
  • -f scriptfile: 添加一个包含sed脚本的文件。
  • -i: 直接修改文件内容(慎用,建议先测试脚本)。

使用示例:

sed 's/old/new/' filename.txt  # 将'old'替换为'new'sed '/pattern/d' filename.txt  # 删除所有包含'pattern'的行sed '10d' filename.txt  # 删除第10行sed -i 's/old/new/g' filename.txt  # 直接在文件中全局替换'old'为'new'

awk

awk是一个强大的文本分析工具,它的特点是提供了编程语言的功能,可以处理数据并生成报告。

基本语法:

awk [options] 'program' inputfile...

常用选项:

  • -F fs: 设置输入字段分隔符为fs。
  • -v var=value: 设置用户定义变量。

使用示例:

awk '{print $2,$1}' filename.txt  # 交换每行的第一和第二个字段awk -F: '/pattern/ {print $1}' /etc/passwd  # 打印/etc/passwd中匹配'pattern'行的第一个字段awk 'BEGIN {sum=0} {sum += $1} END {print sum}' filename.txt  # 计算文件中第一个字段的总和awk -F ',' '{ if($3 > 0) print $1,$2 }' data.csv  # 打印CSV文件第三列大于0的行的第一和第二列

awk程序通常包含BEGINEND和模式匹配部分,它们分别在处理文本之前、之后和对每一行执行。字段变量(如$1$2等)用于访问当前记录的字段。


这些工具的灵活性和强大功能使得它们在文本处理中非常有用。通过熟练使用这些工具,你可以编写出高效且复杂的文本处理命令。

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

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

相关文章

海外直邮革命:跨境电商的全球化销售策略

在数字化时代,跨境电商正经历着一场革命,而海外直邮成为这场变革的引领者。全球范围内,越来越多的企业通过直邮方式销售商品,打破了地域限制,实现了商品的全球化流通。本文将深入探讨海外直邮的崛起,以及跨…

Spring Cloud Config相关问题及答案(2024)

1、什么是 Spring Cloud Config,它解决了哪些问题? Spring Cloud Config 是一个为微服务架构提供集中化外部配置支持的项目。它是构建在 Spring Cloud 生态系统之上,利用 Spring Boot 的开发便利性,简化了分布式系统中的配置管理…

文件管理方法和技巧,清除文件名中的大写字母

如何将多个文件名称中的大写字母都清除掉,有没有批量操作的方法?这个还真的有,今天小编就给各位朋友介绍一款很好用的软件——文件批量改名高手,助大伙一键清除多个文件名称中的所有大写字母。 所需工具: 一个【文件…

激情与创造的三重旋律:数学、编程与诗歌翻译的人生奏章

回顾过去的28载,我对生命中那些塑造我成长轨迹的经历充满感恩。自南京大学数学系求学起步,1995年毕业后携带着深厚的数学根基走入社会。从教学数学到转战编程领域,在泸州职业技术学院的教学生涯中逐渐过渡,这一过程仿佛顺理成章&a…

Mysql 中的常用命令

在数字化世界中,数据库已经成为数据存储和处理的核心。而MySQL,作为最受欢迎的关系型数据库管理系统之一,其强大的功能和易用性使它成为开发者和企业的首选。掌握MySQL中的常用命令,是每一位数据库管理员和开发者的基本要求。本篇…

RocketMQ5-01云原生和AI演变下的架构重构

2022年9月22日,迎来 RocketMQ5 的发版,距离 2017 发布的 4.X 时代,RocketMQ 迎来 5.X 时代。 RocketMQ 4.X 时代已经使众多开发者和项目受益,但是随着关注度、使用量逐步上升以及云原生时代的到来,也对其自身架构带来…

无法开机报 不可恢复的错误:securityagent无法创建所要求的机制Teamviewerauthplugin:start

无法开机报 不可恢复的错误:securityagent无法创建所要求的机制Teamviewerauthplugin:start 初步判断很有可能是TeamViewer的某个启动项或者签名书没有, 导致在预加载的时候无法加载TeamViewer。 然后出现这个情况有一个前提,那就是你用了第三…

神经网络框架的基本设计

一、神经网络框架设计的基本流程 确定网络结构、激活函数、损失函数、优化算法,模型的训练与验证,模型的评估和优化,模型的部署。 二、网络结构与激活函数 1、网络架构 这里我们使用的是多层感知机模型MLP(multilayer prrceptron)&#x…

如何委婉地告诉老板,BI连接金蝶ERP,对决策更有利?

网友:新入职一家企业,发现这家企业依旧是从金蝶ERP中导出数据做分析,这样数据量一大、科目变动多就很难保证数据分析的及时性、灵活性,说真的这对决策来说并不是什么好事。但老板似乎并不觉得这有什么不对。我该如何委婉地告诉老板…

Java 新手如何使用Spring MVC 中的查询字符串和查询参数

目录 前言 什么是查询字符串和查询参数? Spring MVC中的查询参数 处理可选参数 处理多个值 处理查询参数的默认值 处理查询字符串 示例:创建一个RESTful服务 总结 作者简介: 懒大王敲代码,计算机专业应届生 今天给大家…

基于SSM的班级事务管理系统设计与实现

末尾获取源码 开发语言:Java Java开发工具:JDK1.8 后端框架:SSM 前端:采用Vue技术开发 数据库:MySQL5.7和Navicat管理工具结合 服务器:Tomcat8.5 开发软件:IDEA / Eclipse 是否Maven项目&#x…

《手把手教你》系列练习篇之6-python+ selenium自动化测试(详细教程)

1. 简介 今天我们还是继续练习练习基本功,各位小伙伴要耐住住性子,要耐得住寂寞啊,不要急躁,后面你会感谢你在前边的不断练习的。到后面也是检验你前边的学习成果的一次很好实践。 本文介绍如何通过link text、partial link text…

PHP运行环境之宝塔软件安装及Web站点部署流程

PHP运行环境之宝塔软件安装及Web站点部署流程 1.1安装宝塔软件 官网:https://www.bt.cn/new/index.html 自行注册账号,稍后有用 下载安装页面:宝塔面板下载,免费全能的服务器运维软件 1.1.1Linux 安装 如图所示,宝…

onnx的基本介绍

TensorRT 从框架中导入训练模型的主要方式是通过ONNX交换格式。 TensorRT 附带一个 ONNX 解析 器库来帮助导入模型。在可能的情况下,解析器向后兼容 opset 7; ONNX模型 Opset 版本转换器可以帮助解决不兼容问题。 GitHub 版本可能支持比 TensorRT 附带的…

Image - 体积最小的 base64 encode 1*1透明图片,透明背景图片base64编码

背景 前端开发时&#xff0c;有些<img>标签的src属性的值来源于接口&#xff0c;在接口获取结果之前&#xff0c;这个src应该设置为什么呢&#xff1f; 误区&#xff1a;设置为# 有人把src设置为<img src"#" />。 这是有问题的&#xff0c;浏览器解析…

2024.1.5每日一题

LeetCode每日一题 1944.队列中可以看到的人数 1944. 队列中可以看到的人数 - 力扣&#xff08;LeetCode&#xff09; 题目描述 有 n 个人排成一个队列&#xff0c;从左到右 编号为 0 到 n - 1 。给你以一个整数数组 heights &#xff0c;每个整数 互不相同&#xff0c;heig…

Windows 下用 C++ 调用 Python

文章目录 Part.I IntroductionChap.I InformationChap.II 预备知识 Part.II 语法Chap.I PyRun_SimpleStringChap.II C / Python 变量之间的相互转换 Part.III 实例Chap.I 文件内容Chap.II 基于 Visual Studio IDEChap.III 基于 cmakeChap.IV 运行结果 Part.IV 可能出现的问题Ch…

硬盘检测软件 SMART Utility mac功能特色

SMART Utility for mac是一款苹果电脑上磁盘诊断工具&#xff0c;能够自动检测磁盘的状态和错误情况&#xff0c;分析并提供错误报告,以直观的界面让用户可明确地知道自己的磁盘状况。SMART Utility 支持普通硬盘HDD和固态硬盘SSD&#xff0c;能够显示出详细的磁盘信息&#xf…

红警黑苹果对战平台2.3.6版本更新说明

红警黑苹果对战平台2.3.6版本更新说明 1.机甲风暴终极防守1.3版本:增加了悖论引擎射程增加了100秒游戏时间 2.新增众多精选防守和对战地图 3.清理了一些弹窗地图 4.其它一些优化 https://it360.org.cn/view/8244

技术发展驱动编程语言走向

未来编程语言的走向可能会受到多种因素的影响&#xff0c;包括技术进步、市场需求、开发人员的偏好和生态系统的演变等。以下是一些可能的发展趋势&#xff1a; 简洁性和易用性 随着技术的进步&#xff0c;编程语言可能会变得越来越简洁和易于使用。一些语言可能会引入更高级的…