【shell】awk、sed、sort是什么?怎么用?

news2025/5/26 7:47:40

目录

一、AWK

干什么用的?

使用起来有什么条件?

怎么使用?

二、sed

功能?

sed怎样读取数据?

怎样调用sed ?

三、sort 

功能是什么?

命令有哪些?


本文只讲解了一些简略的知识框架,如需详细学习,附录几本参考书籍,百度网盘自行下载:

链接:https://pan.baidu.com/s/1uqBeL7FF0GiG4EzmWk90sg?pwd=3905 
提取码:3905

一、AWK

引言:如果要格式化报文或从一个大的文本文件中抽取数据包,那么awk可以完成这些任务。

干什么用的?

        awk是shell过滤工具,之所以要在shell中使用awk是因为awk本身是学习的好例子,但结合与其他工具诸如grep和sed,将会使shell编程更加容易。

        简言之,功能就是过滤和提取,通过对源文件读取内容,然后进行过滤,提取用户感兴趣的字段

使用起来有什么条件?

        源文件必须满足如下条件才可被awk过滤和提取内容:

        源文件中内容要满足每个都有分隔符,且是相同的分隔符。

        如:1.2  2.3  3.4这就满足条件,分隔符为' . '

怎么使用?

        有三种方式调用AWK。

第一种是命令行方式:

awk [-F field-separator] 'commands' input-file(s)
  • commands是真正的awk命令
  • -F. 分隔符。因为 a w k使用空格作为缺省的域分隔符,因此如果 要浏览域间有空格的文本,不必指定这个选项,但如果要浏览诸如 p a s s w d文件,此文件各域 以冒号作为分隔符,则必须指明 - F选项.

         第二种方法是将所有awk命令插入一个文件,并使 awk程序可执行,然后用awk命令解释 器作为脚本的首行,以便通过键入脚本名称来调用它。

        第三种方式是将所有的awk命令插入一个单独文件,然后调用:

awk -f awk-script-file input-files(s)

        -f 选项指明在文件 awk _script _ file中的awk脚本,input _ file( s )是使用awk进行浏览的文件名。

示例:

        获源文件中的整数部分,通过下面圈红的命令实现,其中print:打印 ,'{}' awk的命令,file是源文件,‘>’ 是重定向,新创建newfile文件将内容输入到该文件内,如果不写就是打印到屏幕上。而$1就是文件的第一列。

         若要获取小数部分,通过$2得到:

获取下面标红的第一行

        可以用管道grep结合awk进行筛选,其中间隔符是空格,因此直接不写.F,-v 取反 不要XXX的意思。

        或者用这种方式,第1列必须是ubantu,对其筛选,$0是打印一整行,然后筛选第8行是sleep,进行如下筛选也可以:


二、sed

功能?

        简言之就是对文件进行读取数据和编辑

sed怎样读取数据?

        sed从文件的一个文本行或从标准输入的几种格式中读取数据,将之拷贝到一个编辑缓冲区,然后读命令行或脚本的第一条命令,并使用这些命令查找模式或定位行号编辑它。重复此过程直到命令结束。

        修改的是拷贝,源文件未发生变化

怎样调用sed ?

        调用sed有三种方式:

  1. 在命令行键入命令;
  2. 将sed命令插入脚本文件,然后调用sed;
  3. 将sed命令插入脚本文件,并使sed脚本可执行。

        使用sed命令行格式为:

sed [选项] sed命令 输入文件

         在命令行使用sed命令时,实际命令要加单引号。sed也允许加双引号。

        使用sed脚本文件,格式为:

sed [选项] -f sed脚本文件 输入文件 

        要使用第一行具有s e d命令解释器的s e d脚本文件,其格式为:

sed 脚本文件 [选项] 输入文件 

        不管是使用shell命令行方式或脚本文件方式,如果没有指定输入文件,sed从标准输入中接受输入,一般是键盘或重定向结果。

        sed选项如下:

  • n 不打印;sed不写编辑行到标准输出,缺省为打印所有行(编辑和未编辑)。
  • p命令可以 用来打印编辑行。
  • c 下一命令是编辑命令。使用多项编辑时加入此选项。如果只用到一条sed命令, 此选项无用,但指定它也没有关系。
  • f 如果正在调用sed脚本文件,使用此选项。此选项通知sed一个脚本文件支持所有的sed命令,例如:sed -f myscript.sed input_file,这里myscript.sed即为支持sed命令的文件。

        基本sed编辑命令如下: 

示例:

在第二行内添加3.3

附加数据:附加到第二行后面

删除第二行

打印第二行、第三行,加上-n是不对源文件进行打印


三、sort 

功能是什么?

        sort命令将许多不同的域按不同的列顺序分类

命令有哪些?

sort -cmu -o output_file [other options] +pos1 +pos2 input_files
  • -c 测试文件是否已经分类
  • -m 合并两个分类文件
  • -u 删除所有复制行
  • -o 存储sort结果的输出文件名
    • - o选项保存分类结果,然而也可以使用重定向方法保存。
  • 其他选项:
    • -b 使用域进行分类时,忽略第一个空格
    • -n 指定分类是域上的数字分类
    • -t 域分隔符;用非空格或t a b键分隔域
    • -r 对分类次序或比较求逆
    • +n n为域号。使用此域号开始分类。 n n为域号。在分类比较时忽略此域,一般与 + n一起使用。 post1 传递到m,n。m为域号,n为开始分类字符数;例如 4,6意即以第5域分类,从第7 个字符开始。

        最基本的sort方式为sort filename,按第一域进行分类(分类键 0)。实际上读文件时sort操作将行中各域进行比较,如下所示:

sort分类求逆

         如果要逆向sort结果,使用- r选项。在通读大的注册文件时,使用逆向sort很方便。

唯一性分类

        有时,原文件中有重复行,这时可以使用 - u选项进行唯一性(不重复)分类以去除重复行。对带重复行的文件使用- u选项去除重复行,不必加其他选项,sort会自动处理。

        如下所示,对文件逆序+去重:

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

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

相关文章

“千年之恋”注册页面制作

“千年之恋”注册页面制作一、实验名称:二、实验日期:三、实验目的:四、实验内容:五、实验步骤:六、实验结果:七、源程序:八、心得体会:一、实验名称: “千年之恋”注册…

算法导论—SAT、NP、NPC、NP-Hard问题

算法导论—SAT、NP、NP-Hard、NPC问题SAT 问题基本定义问题复杂性P、NP、NP-Hard、NP-Complete(NPC)证明NP-Hard关系图NP问题的概念约化的定义NPC问题NP-Hard问题SAT 问题基本定义 SAT 问题 (Boolean satisfiability problem, 布尔可满足性问题,SAT): 给…

C++之完美转发、移动语义(forward、move函数)

完美转发1. 在函数模板中,可以将自己的参数“完美”地转发给其它函数。所谓完美,即不仅能准确地转发参数的值,还能保证被转发参数的左、右值属性不变。2. C11标准引入了右值引用和移动语义,所以,能否实现完美转发&…

「敏捷架构」敏捷架构:规模化敏捷开发的策略

与流行的看法相反,架构是敏捷软件开发工作的一个重要方面,就像传统的工作一样,并且是扩展敏捷方法以满足现代组织的现实需求的关键部分。但是,敏捷专家的架构方式与传统主义者的方式略有不同。本文讨论以下问题: 迈向敏…

Acer传奇Go电脑开机自动安装软件卡死怎么重装系统?

Acer传奇Go电脑开机自动安装软件卡死怎么重装系统?一些用户在网络上下载安装了一些恶意软件之后,导致电脑中了病毒。每次开机联网之后,有很多的软件就会自动开始下载,占满你的桌面,这个情况导致电脑直接卡死了&#xf…

前端知识点复盘

组件和jsx <body><div id"root"></div><script type"text/babel">const root ReactDOM.createRoot(document.getElementById("root"))class App extends React.Component {render() {return (<div> <h1>s…

MOTORTECH控制器维修燃气机点火模块MIC500

MOTORTECH发电机点火控制器模块维修注意事项: (1)由于主配电板经常发生振动,因此故障多发生在振动较强烈之处,所以要检查引起振动的原因并排除之,如躲开共振转速,增加防震垫片等。 (2)尘埃是造成接触不良的原因,对接线端子座及防尘罩等容易附着灰尘的场所要经常清扫。 1、看元…

2023级浙江大学MBA提面优秀资格最新经验分享

通过将近一年时间的奋斗&#xff0c;我的浙大MBA备考之路也算是告一段落了&#xff0c;在备考之初&#xff0c;我也在网络上看了很多“经验帖”&#xff0c;深知提前批面试对于浙大MBA录取来说这个有多重要&#xff0c;虽然我的笔试成绩还没有出来&#xff0c;但是在考完后估分…

HTTP请求返回304状态码以及研究nginx中的304

文章目录1. 引出问题2. 分析问题3. 解决问题4. 研究nginx中的3044.1 启动服务4.2 ETag说明4.3 响应头Cache-Control1. 引出问题 之前在调试接口时&#xff0c;代码总出现304问题&#xff0c;如下所示&#xff1a; 2. 分析问题 HTTP 304: Not Modified是什么意思&#xff1f; …

2022年新一代kaldi团队技术输出盘点

目录 1. 技术创新 1.1 Pruned RNN-T loss 1.2 RNN-T 的快速 GPU 解码 1.3 多码本量化索引的知识蒸馏 1.4 RNN-T 和 CTC 的低延时训练 1.5 Zipformer 1.6 Small tricks 2. 模型部署 2.1 Sherpa 2.1 Sherpa-ncnn 3. 更多的 recipe 和模型 参考资料 1. 技术创新 1.1 …

C语言程序环境剖析——探究从.c到.exe之路

程序环境1.程序的翻译环境和执行环境2. 详解编译 链接2.1 翻译环境2.2 编译的三部分预编译编译汇编2.3链接3.运行环境1.程序的翻译环境和执行环境 在ANSI C的任何一种实现中&#xff0c;都存在两个不同的环境。 翻译环境&#xff0c;在这个环境中源代码被转换成可执行的机器指…

three.js 基础认识与简单应用

一、前言 1. 什么是three.js&#xff1f;你将它理解成threejs&#xff0c;three表示3D的意思&#xff0c;js表示JavaScript的意思&#xff0c;合起来&#xff0c;three.js就是使用JavaScript来写3D程序的意思。three.js是基于WebGL的一个运行在浏览器上的开源框架&#xff0c;使…

企业级安全软件装机量可能大增

声明 本文是学习大中型政企机构网络安全建设发展趋势研究报告. 而整理的学习笔记,分享出来希望更多人受益,如果存在侵权请及时联系我们 研究背景 大中型政企机构是网络安全保护的重中之重&#xff0c;也是国内网络安全建设投入最大&#xff0c;应用新技术、新产品最多的机构…

云原生系列之使用 prometheus监控MySQL实战

文章目录前言一. 实验环境二. 安装MySQL5.72.1 配置yum源2.2 安装MySQL之前的环境检查2.3 开始使用yum安装2.4 启动MySQL并测试三. 安装MySQL_exporter3.1 MySQL_exporter的介绍3.2 mysql_exporter的安装3.3 设置MySQL账户&#xff0c;用于数据收集3.4 启动mysql_exporter3.5 配…

2023年信息系统项目管理师,需要哪些备考资料?

其实考前心态是相当重要的&#xff0c;你需要战胜的一直是你自己。你首先要明确自己考试必胜的决心&#xff0c;树立好的备考心态&#xff0c;学习只要用对了方法&#xff0c;考试通过的几率还是挺高的。备考心得&#xff1a;我自己备考了3个月的时间通过了&#xff0c;分享一套…

Linux多线程---生产者消费者模型和线程池

目录 生产者消费者模型 条件变量 接口 实现基于阻塞队列的cp模型 POSIX信号量 信号量的PV操作 接口&#xff1a; 初始化信号量&#xff1a; 销毁信号量 等待信号量 发布信号量 基于环形队列的生产者消费者模型 线程池 应用场景&#xff1a; 如何实现&#xff1f; …

DHCP中继及配置

为什么需要DHCP Relay&#xff1f;产生背景解决方案DHCP Relay工作原理DHCP Relay配置实现产生背景 随着网络规模的扩大&#xff0c;网络中就会出现用户处于不同网段的情况。 这个时候客户A和客户B要请求IP地址时&#xff0c;首先会发送DHCP Discover广播包&#xff0c;这个广…

一本关于ChatGPT的书《ChatGPT 革命:了解大型语言模型的力量》免费下载

下载地址&#xff1a;https://download.csdn.net/download/winniezhang/87431530 这本书有什么不同&#xff1a; 1、从书名&#xff0c;到大纲&#xff0c;到内容&#xff0c;基本都来自ChatGPT的自述&#xff0c;本人只是负责编辑。 2、整个成书过程只用了2小时不到。 3、…

【排序算法】堆排序(Heap Sort)

堆排序是指利用堆这种数据结构所设计的一种排序算法。堆是一个近似完全二叉树的结构&#xff0c;并同时满足堆积的性质&#xff1a;即子结点的键值或索引总是小于&#xff08;或者大于&#xff09;它的父节点。堆排序介绍学习堆排序之前&#xff0c;有必要了解堆&#xff01;若…

【HTML】HTML 表格 ② ( 表头单元格标签 | 表格标题标签 )

文章目录一、表头单元格标签二、表格标题标签一、表头单元格标签 表头单元格 可以在表格中 用作第一排 作为表格 的 表头 使用 , 表头单元格 中的 文本设置 可以与 普通单元格 中的文本设置 不同 ; 表头单元格 中的 文本 会 居中 , 并且 加粗 显示 ; 表头单元格 标签 如下 : &…