13-14linux三剑客grep,sed,awk

目录

三剑客支持扩展正则写法

grep命令

sed命令

sed指定行查找:

sed模糊过滤文件内容

sed之删除:

sed之替换:

sed追加插入替换:

sed后向引用:

awk命令

awk按照行查找

awk模糊过滤文件内容

awk取列

awk指定分隔符:

awk模式+动作

awk数字比较:


  Linux三剑客是指grep、sed和awk这三个强大的文本处理工具,它们在Linux系统中被广泛用于处理和分析文本数据。

三剑客支持扩展正则写法

grep  -E或者egrep
sed  -r
awk    默认支持扩展正则

grep命令

作用:模糊过滤文件的内容

语法:

grep  [参数]   '过滤的内容'   文件

参数:

grep  -v  :取反,匹配不包含指定内容的行

grep  -r   :递归搜索,搜索指定的目录以及目录下的文件

grep  -i   :不区分大小写

grep  -w  :精准匹配

grep  -o   :显示匹配过程

grep  -E  :支持扩展正则,相当于egrep

grep  -A n   :显示过滤到内容的后 n行

grep  -B n   :显示过滤到内容的前 n行

grep  -C n   :显示过滤到内容的前后各n行

grep  -n    : 显示过滤内容的行号

grep   -c    :统计某个单词出现的次数

sed命令

功能:用于对文本进行流式编辑,可以进行替换、删除、插入等操作

语法:

sed  [参数]   '动作'    文件

参数:

sed-i修改源文件

sed-r支持扩展正则

sed-n取消默认输出

创建环境

sed指定行查找:

sed  -n 只显示被处理的行,通常配合p命令使用

过滤区间范围:

sed  -n  '2,4p'  文件

过滤2-4行

过滤2到最后一行

过滤屏幕上的内容

sed模糊过滤文件内容

模糊过滤语法:

sed  -n  '/过滤内容/p'  文件

sed  -n  '/^r/p'  文件           :过滤r开头的行

sed  -n  '/^[1-4]/p'  文件      :过滤1-4开头的行

sed  -n  '/n$/p'  文件        :过滤n结尾的行

过滤区间范围:

sed  -n  '//,//p'   文件

   sed  -n  '/8.00/,/12.00/p'   文件          :过滤8.00开始到12.00结束的内容

sed之删除:

sed  '3d'  1.txt  :删除第三行

sed  -i   '3d'  1.txt  :删除第三行(修改源文件)

sed  '2,4d'  1.txt  :删除二到四行

sed  '2,$d'  1.txt  :删除二到最后一行

sed  '/过滤的内容/d'  1.txt  :删除过滤的那一行

sed '/^b/d'   :删除b开头的行

-r   支持扩展正则:

sed  -r  '/^bin | ^lp /d'  1.txt    :把bin开头或者lp开头的行删除

sed  -r  '/^bin/,/^lp /d'  1.txt    :把bin开头到lp开头的行删除

扩展正则:

+    ?    |    ()   {}    \b    \s    \w

sed之替换:

sed   's#  将谁    #   替换成谁   #g'   1.txt   

sed   's@  将谁    @   替换成谁   @g'   1.txt   

sed   's/  将谁    /   替换成谁   /g'   1.txt   

g:整行替换 ,不加g默认值替换每行第一个单词

sed   's/root //g'   1.txt    :把所有root替换成空(删除)

sed   's/[0-9]//g'    1.txt   :把所有数字替换成空(删除)

边界符:\b  或  \<

sed  's/\broot\b/lg/g'   1.txt   :

如果有sroot,只把root替换,结果是slg

撬棍 \

如果想把 /root/  替换可以用撬棍或#

sed  's/\/root\//bin/g' 1.txt

sed 's#/root/#bin#g'  1.txt

替换指定行:

sed '3s/root/bin/' 1.txt  :替换第三行root为bin

sed '2,3s/root/bin/' 1.txt  :替换2-3行root为bin

sed   '/adm/s/bin/root/g'  1.txt   :先过滤出adm那一行,再把那行bin替换成root

sed   '/adm/,/hg/s/bin/root/g'  1.txt   :先过滤出adm到hg的行,再把那些行中bin替换成root

sed追加插入替换:

sed  '3i  aaa'  1.txt  在第三行插入aaa

sed  '3a aaa'  1.txt  在第三行下一行(第四行)插入aaa

sed  '3c  aaa'  1.txt  把第三行整行替换成aaa

sed  '3w  new'  1.txt  把第三行内容保存到new文件中

sed  '3,4w  new'  1.txt  把3-4行内容保存到new文件中

sed后向引用:

sed  -r  s#()()()#\1\2\3#g

\1对应第一个括号

\2对应第二个括号......

可以对指定内容进行修改增添

例:利用sed后向引用批量创建文件

seq 5|sed -r 's#(.*)#touch \1.txt#g'|bash

例:利用后向引用批量创建用户

seq 5|sed -r 's#(.*)#useradd \1#g'|bash

awk命令

awk是一个强大的文本分析工具,相对于grep的查找,sed的编辑,awk在其对数据进行分析并产生报告时,显得尤为强大。简单的说就是把文件逐行的读入,以空格为默认分隔符将每行切片,切开的部分在进行各种分析处理。

作用:

1.取行
2.取列
3.模糊过滤
4.数据统计 数据运算
5.支持for循环 if判断 数组..                                                                                                                  6.格式化输出 sed后向引用

语法:

awk '模式'  file      :不加任何动作默认输出

awk  '模式{print}'   file    

其他的命令输出|awk '模式'

awk默认支持正则

awk按照行查找

awk  'NR==3'  file  :输出第三行

NR存放着文件中每行的行号
NR的表达式:
== 等于第几行
> 大于第几行
< 小于第几行
>= 等于等于第几行
<= 小于等于第几行
!= 不等于
&& 并且                                                                                                                                             || 或者

awk  'NR<3'  file    :输出小于3的行

awk  'NR>3&&NR<5'  file    :输出大于3小于5的行

awk  'NR<3|NR>5'  file     :输出小于3或者大于5的行

awk模糊过滤文件内容

awk  '/内容/'  file

awk  '/123/,/456/'  file

awk   '/root/'  file    :匹配所有包含root的行

awk   '/^r/'  file     :匹配所有r开头的行

awk   '/h$/'  file    :匹配所有h结尾的行

awk   '/^[1-3]/'  file     :匹配所有1-3开头的行

awk   '/^2/,/^4/'  file     :匹配所有2开头的行到4开头的行之前的内容

awk取列

默认以空格和tab键为分隔符,如果文件中没有空格和tab键则文件内容被当做第一列

awk  '{print $n}'  file  :取出每一行第n列的内容

awk  '{print $1}'  file   :取出第一列内容

awk  '{print $1,$3}'   file   :取出第一列和第三列

awk  '{print $1''----''$3}'   file   :取出1,3列,并在中间加上----

awk  '{print NF}'   file   :显示最后一列列号

awk  '{print $NF}'  file    :显示最后一列的内容

df  -h | awk '{print  $5}'   取出磁盘第五列信息

df  -h | awk '{print  $(NF-1)}   :取出磁盘倒数第二列信息' 

awk指定分隔符:

默认以tab键或空格分隔

指定分隔符:

awk  -F  :  或  

awk  -F  "  :  "              : "  "中是指定分隔符

awk  -F  " :/ "    :指定多分隔符

awk -F: '{print $NF}' 1.txt

awk -F ":/"  '{print $2}' 2.txt

awk模式+动作

awk   'NR==3{print  $3}'  file    :取出第三行的第三列

df  -h| awk '/sda3/,/sr0/{print $3}'

df  -h|awk  'NR >3 &&NR<5{print $4}'

awk  '$2 ~ /^o/'  file    :筛选输出第二列内容以字母 o 开头的所有行

awk数字比较:

awk   -F  :  '$3>90'  file  :筛选第三列内容大于90的行

awk   -F  :  '$3>80&&$3<90'  file  :筛选第三列内容大于80的且小于90的行

这是我的个人学习笔记,主要用于记录自己对知识点的理解和梳理。由于目前仍在学习探索阶段,内容中难免存在理解偏差或表述疏漏,恳请各位大佬不吝赐教,多提宝贵意见~ 若有不同看法,欢迎理性交流探讨,感谢包容与指正!

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

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

相关文章

损失函数和调度器相关类代码回顾理解 |nn.CrossEntropyLoss\CosineAnnealingLR

目录 nn.CrossEntropyLoss CosineAnnealingLR nn.CrossEntropyLoss loss_func nn.CrossEntropyLoss(reduction"sum") 定义nn.CrossEntropyLoss交叉熵损失函数&#xff0c;reduction参数设置为"sum"&#xff0c;表示将所有样本的损失相加。reduction 参…

中国不同类型竹林分布数据

中国竹林分布的主要特点简介&#xff1a;总体分布格局&#xff1a;核心区域&#xff1a; 主要分布在长江流域及以南的广大亚热带和热带地区。北界&#xff1a; 大致以黄河流域为北界&#xff0c;但天然成片竹林在秦岭-淮河一线以南才比较普遍。人工引种或特殊小环境下&#xff…

Sqlserver备份恢复指南-完整备份恢复

博主会用简单清晰的方式&#xff0c;带你系统学习使用T-SQL命令行的方式 给SQL Server 做备份与恢复。我们按照从零开始、逐步深入的路线来讲解&#xff01; 完整备份恢复-差异增量备份恢复-事务日志备份恢复 &#x1f538; SQL Server 备份类型&#xff1a;类型说明完整备份&a…

AI 调酒师上岗!接管酒吧吧台

7月29日&#xff0c;马老师的 HHB 音乐酒吧在阿里巴巴西溪园区正式开业&#xff0c;开业这天迎来了一位神秘嘉宾“AI 调酒师”&#xff01; 这位 AI 调酒师不仅能根据你的MBTI、今日情绪、星座运势、江湖花名等为你特调一杯鸡尾酒&#xff0c;还能为这杯酒配上故事和诗文。 点…

【C++进阶】一文吃透静态绑定、动态绑定与多态底层机制(含虚函数、vptr、thunk、RTTI)

【C进阶】一文吃透静态绑定、动态绑定与多态底层机制&#xff08;含虚函数、vptr、thunk、RTTI&#xff09;作者&#xff1a;你的C教练 日期&#xff1a;2025-08-01目录 静态绑定 vs 动态绑定非虚函数的三大坑多态的四要素虚析构函数为什么必须写&#xff1f;探秘 vptr/vftable…

VUE基础知识2

1.计算属性&#xff1a;使用计算属性来描述依赖响应式状态的复杂逻辑。关键字computed:{}//计算属性&#xff0c;使用的时候和函数方法不一样&#xff0c;不需要加括号。简单来说就是模板方法的复杂逻辑放到了计算属性中去。2.计算属性缓存VS方法&#xff1a;计算属性值会基于其…

在PyCharm中将现有Gitee项目重新上传为全新项目

如果你想将当前本地的Gitee项目重新上传为一个全新的Gitee项目&#xff08;保留本地代码但断开与原仓库的关联&#xff09;&#xff0c;可以按照以下步骤操作&#xff1a; 删除旧的Git远程仓库关联 打开PyCharm&#xff0c;进入你的项目 点击顶部菜单 Git > Manage Remotes …

设计模式1:创建型模式

设计模式1&#xff1a;创建型模式 设计模式2&#xff1a;结构型模式&#xff08;编写中&#xff09; 设计模式3&#xff1a;行为型模式&#xff08;编写中&#xff09; 前言 设计模式是软件开发中经过验证的可复用解决方案&#xff0c;它们源自实践、提炼于经验&#xff0c;并…

React--》规划React组件库编码规范与标准 — Button篇

目前前端组件化已经成为前端开发的核心思想之一&#xff0c;在这篇文章中将深入探讨如何规划一个规范的Button组件&#xff0c;让它不仅能高效支持不同的功能需求还能确保跨项目、跨团队的一致性&#xff0c;抛砖引玉的方式引出后面组件库的其他组件的开发&#xff01; 目录 B…

中科米堆CASAIM金属件自动3d测量外观尺寸三维检测解决方案

金属零部件的外观尺寸检测直接关系到产品的装配精度和使用性能。CASAIM基于激光扫描技术的自动化三维扫描系统&#xff0c;为金属加工行业提供了高效的自动3D测量解决方案&#xff0c;有效解决了传统检测方式效率低、覆盖面有限等问题。激光扫描技术在金属件测量中优势明显。与…

开源数据同步中间件,支持MySQL、Oracle

DBSyncer&#xff08;英[dbsɪŋkɜː(r)]&#xff0c;美[dbsɪŋkɜː(r) 简称dbs&#xff09;是一款开源的数据同步中间件&#xff0c;提供MySQL、Oracle、SqlServer、PostgreSQL、Elasticsearch(ES)、Kafka、File、SQL等同步场景。支持上传插件自定义同步转换业务&#xff0…

中英混合的语音识别XPhoneBERT 监督的音频到音素的编码器结合 f0 特征LID

完整项目包获取点击文末名片完成一个 Code-Switching&#xff08;中英混合&#xff09;的语音识别系统&#xff0c;整个流程如下思路进行&#xff1a; 163. (Step 1) 训练音频到音素的编码器&#xff08;Audio → Phoneme Encoder&#xff09; 你已经完成了此部分。核心思路是利…

Param关键字的使用

1&#xff1a;当一个方法的某一个参数个数不固定的时候&#xff0c;可以使用Param2:可变的方法参数必须定义为数组类型3&#xff1a;该参数必须放在方法参数的最后&#xff0c;应且只有一个4&#xff1a;参数必须为一维数组5&#xff1a;params不能和ref和out组合使用namespace…

京东云轻量云服务器与腾讯云域名结合配置网站及申请SSL证书流程详解

京东云轻量云服务器与腾讯云域名结合配置网站及申请SSL证书流程详解 1. 需求及实现效果 1.1. 需求 先说一下我当前情况&#xff0c;我目前有一个京东云服务器和一个在腾讯云旗下买的域名&#xff08;不要问为啥一个在京东云&#xff0c;一个在腾讯云&#xff0c;那自然是哪个…

Python入门Day14:面向对象编程初步(OOP入门)

学习目标&#xff1a;理解面向对象编程&#xff08;OOP&#xff09;的基本思想&#xff1a;类&#xff0c;对象掌握类的定义&#xff0c;构造方法&#xff0c;实例属性和方法熟悉self的含义与作用学会用类组织和封装代码&#xff0c;初步构建自己的“对象世界”一、什么是面向对…

日志和指标标签规范化方案

好的&#xff0c;设计一个有效的日志和指标标签规范化方案对于构建可观测性强、易于维护、关联分析顺畅的系统至关重要。混乱的标签命名会极大增加查询、聚合、告警和故障排除的难度。 以下是一个综合性的标签规范化方案建议&#xff0c;结合了行业最佳实践&#xff1a; 核心目…

Windows和Linux的tree工具

目录 1.前言 2.Linux的tree工具 2.1.安装tree 2.2.常用命令与参数 2.3.常见应用场景 2.4.注意事项 3.Windows的tree工具 3.1.基础语法 3.2.核心参数详解 3.3.常见应用场景 3.4.局限性与增强方案 4.Windows 与 Linux tree 的核心差异 5.tree工具优势 5.总结 相关…

[echarts] 更新数据

option {title: { text: 销售数据 },tooltip: { trigger: axis },legend: { data: [销量, 库存] },xAxis: {type: category,data: [衬衫, 羊毛衫, 雪纺衫]},yAxis: { type: value },series: [{ name: 销量, type: bar, data: [5, 20, 36] },{ name: 库存, type: line, data: […

通过el-image实现点击文字查看图片,及其图片列表

场景一&#xff1a;表格中有时候会有点击文字查看图片的功能&#xff08;因为表格的一个单元格不方便显示多个图片&#xff09;如下图所示&#xff1a;对于这个需求&#xff0c;我们可以应对的方案是&#xff1a;在文字旁边写一个el-image图默认显示多张图片中的第一张&#xf…

003 实习(前端jquery之轮播图,学校网页)

web前端,查询官网:w3schoolHTML:负责网页结构&#xff08;页面元素和内容&#xff09;CSS:负责网页的表现&#xff08;网页元素的外观、位置等页面样式&#xff0c;如颜色&#xff0c;大小&#xff09;JAVAScript:负责网页的行为&#xff08;交互效果&#xff09;<a>:超链…