linux四剑客 grep awk sed find

news2025/6/14 14:26:24

Grep

过滤来自一个文件或标准输入匹配模式内容。
除了grep外,还有egrep、fgrep。egrep是grep的扩展,相当于grep -E。fgrep相当于grep -f,用的少。
Usage: grep [OPTION]… PATTERN [FILE]…

支持的正则描述
-E,–extended-regexp模式是扩展正则表达式(ERE)
-P,–perl-regexp模式是Perl正则表达式
-e,–regexp=PATTERN使用模式匹配,可指定多个模式匹配
-f,–file=FILE从文件每一行获取匹配模式
-i,–ignore-case忽略大小写
-w,–word-regexp模式匹配整个单词
-x,–line-regexp模式匹配整行
-v,–invert-match打印不匹配的行
输出控制描述
-m,–max-count=NUM输出匹配的结果num数
-n,–line-number打印行号
-H,–with-filename打印每个匹配的文件名
-h,–no-filename不输出文件名
-o,–only-matching只打印匹配的内容
-q,–quiet不输出正常信息
-s, --no-messages不输出错误信息
-r,–recursive递归目录
-c,–count只打印每个文件匹配的行数
–include=FILE_PATTERN只检索匹配的文件
–exclude=FILE_PATTERN跳过匹配的文件
–exclude-from=FILE跳过匹配的文件,来自文件模式
–exclude-dir=PATTERN跳过匹配的目录
内容行控制描述
-B,–before-context=NUM打印匹配的前几行
-A,–after-context=NUM打印匹配的后几行
-C,–context=NUM打印匹配的前后几行
–color[=WHEN]匹配的字体颜色

sed

流编辑器,过滤和替换文本。
工作原理:sed命令将当前处理的行读入模式空间进行处理,处理完把结果输出,并清空模式空间。然后再将下一行读入模式空间进行处理输出,以此类推,直到最后一行。还有一个空间叫保持空间,又称暂存空间,可以暂时存放一些处理的数据,但不能直接输出,只能放到模式空间输出。
这两个空间其实就是在内存中初始化的一个内存区域,存放正在处理的数据和临时存放的数据

Usage:
sed [OPTION]… {script-only-if-no-other-script} [input-file]…
sed [选项] ‘地址 命令’ file

选项描述
-n不打印模式空间
-e执行脚本、表达式来处理
-f执行动作从文件读取执行
-i修改原文件
-r使用扩展正则表达式
命令描述
s/regexp/replacement/替换字符串
p打印当前模式空间
P打印模式空间的第一行
d删除模式空间,开始下一个循环
D删除模式空间的第一行,开始下一个循环
=打印当前行号
a \text当前行追加文本
i \text当前行上面插入文本
c \text所选行替换新文本
q立即退出sed脚本
r追加文本来自文件
: labellabel为b和t命令
b label分支到脚本中带有标签的位置,如果分支不存在则分支到脚本的末尾
t label如果s///是一个成功的替换,才跳转到标签
h H复制/追加模式空间到保持空间
g G复制/追加保持空间到模式空间
x交换模式空间和保持空间内容
l打印模式空间的行,并显示控制字符$
n N读取/追加下一行输入到模式空间
w filename写入当前模式空间到文件
!取反、否定
&引用已匹配字符串
地址描述
first~step步长,每step行,从第first开始
$匹配最后一行
/regexp/正则表达式匹配行
number只匹配指定行
addr1,addr2开始匹配addr1行开始,直接addr2行结束
addr1,+N从addr1行开始,向后的N行
addr1,~N从addr1行开始,到N行结束

awk

awk是一个处理文本的编程语言工具,能用简短的程序处理标准输入或文件、数据排序、计算以及生成报表等等。
在Linux系统下默认awk是gawk,它是awk的GNU版本。可以通过命令查看应用的版本:ls -l /bin/awk
基本的命令语法:awk option ‘pattern {action}’ file
其中pattern表示AWK在数据中查找的内容,而action是在找到匹配内容时所执行的一系列命令。花括号用于根据特定的模式对一系列指令进行分组。
awk处理的工作方式与数据库类似,支持对记录和字段处理,这也是grep和sed不能实现的。
在awk中,缺省的情况下将文本文件中的一行视为一个记录,逐行放到内存中处理,而将一行中的某一部分作为记录中的一个字段。用1,2,3…数字的方式顺序的表示行(记录)中的不同字段。用$后跟数字,引用对应的字段,以逗号分隔,0表示整个行。

在这里插入图片描述

PatternDescription
BEGIN{ }给程序赋予初始状态,先执行的工作
END{ }程序结束之后执行的一些扫尾工作
/regular expression/为每个输入记录匹配正则表达式
pattern && pattern逻辑and,满足两个模式
pattern
! pattern逻辑not,不满足模式
pattern1, pattern2范围模式,匹配所有模式1的记录,直到匹配到模式2

find

功能:目录层次结构中搜索文件
格式:find path -option actions
常用选项:
-name 文件名,支持(‘*’, ‘?’)
-type 文件类型,d目录,f常规文件等
-perm 符合权限的文件,比如755
-atime -/+n 在n天以内/过去n天被访问过
-ctime -/+n 在n天以内/过去n天被修改过
-amin -/+n 在n天以内/过去n分钟被访问过
-cmin -/+n 在n天以内/过去n分钟被修改过
-size -/+n 文件大小小于/大于,b、k、M、G
-maxdepth levels 目录层次显示的最大深度
-regex pattern 文件名匹配正则表达式模式
-inum 通过inode编号查找文件
动作:
-detele 删除文件
-exec command {} ; 执行命令,花括号代表当前文件
-ls 列出当前文件,ls -dils格式
-print 完整的文件名并添加一个回车换行符
-print0 打印完整的文件名并不添加一个回车换行符
-printf format 打印格式
其他字符:
! 取反
-or/-o 逻辑或
-and 逻辑和

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

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

相关文章

爱智EdgerOS之深入解析VSCode的EdgerOS插件

一、安装插件 EdgerOS 插件是一个专门为应用开发者提供的在 EdgerOS 下提供应用构建、应用部署、应用更新等功能的插件,同时它还可以监视爱智应用的执行状态,方便开发者更好地调试应用。EdgerOS 插件需要在 VSCode 的 “拓展” 中下载安装,如…

vue-vue2和vue3的diff算法

核心要点 数据变化时,vue如何更新节点虚拟DOM 和 真实DOM 的区别vue2 diff 算法vue3 diff 算法 一、 数据变化时,vue如何更新节点 首先渲染真实DOM的开销是很大,比如有时候我们修改了某个数据且修改的数据量很大时,此时会频繁的…

自学编程的5大误区,早知道早避坑,过来人的宝贵经验

前言 有的人自学很快,几乎一个多月就能掌握一门技术,而有的人苦苦坚持,最后还是半途而废,很大的原因就在于在学习的时候掉进了一些误区没能走出来。 今天我们就来讲讲自学编程常见的5大误区,避开这些误区我们定能在自…

【Java Web】014 -- SpringBoot原理(配置优先级、Bean管理、SpringBoot原理)

目录 一、配置优先级 1、配置(3种:.properties、yml、yaml) ①、配置文件优先级 ②、如何指定Java系统属性和命令行参数 ③、5种配置文件的优先级 二、Bean管理 1、获取bean(3种方法) 2、bean作用域(5种&am…

Arduino开发之如何连接超声波模块?

文章目录0、引言1、超声波模块说明2、代码编写3、功能演示0、引言 在利用Arduino开发过程中,若需知道设备与周围环境的距离,可利用超声波模块测量短程距离,使运动设备感知周围环境。本文在【Arduino如何进行开发?】基础上&#xf…

探索树形数据结构,通识树、森林与二叉树的基础知识(专有名词),进一步利用顺序表和链表表示、遍历和线索树形结构

树与二叉树 1.树 1.树形结构(非线性结构) 结点之间有分支,具有层次关系 树的定义: 树(tree)是n(n≥0)个有限集。 若n 0,则称为空树; 若n > 0,则它满足如下两个条件: 有且仅有一个特定的称为根(Ro…

NIFI大数据进阶_Json内容转换为Hive支持的文本格式_实际操作_02---大数据之Nifi工作笔记0032

然后首先我们来看一下hdfs中的数据的格式可以看到,还是json的格式对吧 而且也没有回行 然后我们来操作,首先添加一个evaluateJsonPath处理器 可以看到找到这个处理器 添加以后,我们去配置 ​​​​​​​ 点击去配置evaluateJsonPath处理器 可以看到首先我们destination这里配…

Rancher部署K8s集群

一、集群配置 服务器CPU内存磁盘操作系统k8s-master16核16G60GCentOS Linux release 7.5.1804k8s-node-116核16G60GCentOS Linux release 7.5.1804k8s-node-216核16G60GCentOS Linux release 7.5.1804 Rancher version : 2.6.3 二、环境初始化 所有服务器均执行一遍 1、将…

如何在矩池云上部署 Carla,模拟自动驾驶

简介 Carla 是一款基于 Python 编写和 UE(虚幻引擎)的开源仿真器,用于模拟自动驾驶车辆在不同场景下的行为和决策。它提供了高度可定制和可扩展的驾驶环境,包括城市、高速公路和农村道路等。Carla 还提供了丰富的 API 和工具&…

vscode中的配置

首先,运行或调试某文件,需要该文件是活动文件(当前打开的文件)。 下面依次介绍tasks.json和launch.json的配置参数。 tasks.json 1.tasks.json的用途 用于指定编译器和链接文件等。默认路径在.vscode下面。 2.如何打开一个tas…

springboot+Mybatis项目搭建教学(controller、service、dao、entity),并写一个简单的接口

创建一个springboot的项目 首先我们需要新建一个文件夹对吧,这里就不展示了,然后我们用IDEA打开这个文件夹,是这样的 新建一个模块 然后按照这里的进行选择 模块名字是自己随便起的,命名在这里时无关紧要的,然后我…

Python实现Imagenet数据集的合并和拆分

Python实现Imagenet数据集的合并和拆分 1. 合并Imagenet 任务需求 文件夹形式为一个数据集MyImagenet,路径为/home/lihuanyu/code/03AdaBins/img_data/MyImagenet/val,val文件夹又有若干的类别子文件夹,子文件夹是每一个类别的图片&#xf…

数据结构_第十一关:二叉树的链式结构

目录 1.二叉树链式结构的实现 1.1前置说明 1.2二叉树的遍历 1.3二叉树遍历的实现: 1)先序遍历、中序遍历、后续遍历代码如下 2)层序遍历: 1.4结点个数以及高度的计算 1)求二叉树的总节点: 2&#…

阿里张勇:所有行业都值得用大模型重新做一遍!

‍数据智能产业创新服务媒体——聚焦数智 改变商业“2023阿里云峰会”于4月11日在北京国际会议中心隆重召开,本次峰会以" 与实俱进 为创新提速!"为主题,阿里巴巴集团董事会主席兼首席执行官张勇、阿里云智能集团首席技术官周靖人、…

Python机器学习:适合新手的8个项

再多的理论也不能代替动手实践。教科书和课程会让你误以为精通,因为材料就在你面前。但当你尝试去应用它时,可能会发现它比看起来更难。而「项目」可帮助你快速提高应用的 ML 技能,同时让你有机会探索有趣的主题。此外,你可以将项…

java mysql高校教学成果管理系统dzkfY3程序

1.用户管理模块: 该模块包括注册用户管理和系统用户管理,系统用户主要是普通管理员,对用户信息进行管理,只有注册用户才可在该系统上进行相应的操作。用户对个人信息可进行修改;管理员可对自己的个人信息进行维护&…

Java线程系列详解

一,基本概念 进程: 程序是计算机指令的集合,它以文件形式存储在磁盘上,而进程就是一个执行中的程序,而每一个进程都有其独立的内存空间和系统资源。线程: 线程运行在进程中,不能独立存在。线程…

2019年 团体程序设计天梯赛——题解集

前言: Hello各位童学大家好!😊😊,茫茫题海你我相遇即是缘分呐,或许日复一日的刷题已经让你感到疲惫甚至厌倦了,但是我们真的真的已经达到了我们自身极限了吗?少一点自我感动&#xf…

城乡供水一体化信息化系统-城乡供水一体化

建设方案 城乡供水一体化信息化系统是运用云计算、大数据等信息化手段,借助在线监测设备,并依托“供水信息化平台”,实时感知供水系统的运行状态,实现对农村供水工程远程监控、在线监测、实时预警、智慧监管。 系统功能 水源地监测…

【 初识 Spring MVC 程序开发 】

文章目录一、什么是 Spring MVC二、什么是 MVC三、MVC 和 Spring MVC 的关系四、为什么要学 Spring MVC五、怎么学 Spring MVC六、Spring MVC 创建和连接一、什么是 Spring MVC Spring Web MVC 是基于 Servlet API 构建的原始 Web 框架,从⼀开始就包含在 Spring 框…