Linux常用命令(16)—awk命令(有相关截图)

写在前面:

最近在学习Linux命令,记录一下学习Linux常用命令的过程,方便以后复习。仅供参考,若有不当的地方,恳请指正。如果对你有帮助,欢迎点赞,关注,收藏,评论,谢谢。

awk命令 用于模式扫描和文本/数据提取

awk 是一种处理文本文件的语言,是一个强大的文本分析工具。

awk 通过提供编程语言的功能,如变量、数学运算、字符串处理等,使得对文本文件的分析和操作变得非常灵活和高效。

之所以叫 awk 是因为其取了三位创始人 Alfred Aho,Peter Weinberger, 和 Brian Kernighan 的 Family Name 的首字符。

1. 基本语法

awk options 'pattern {action}' file

选项参数说明:

options:是一些选项,用于控制 awk 的行为。

pattern:是用于匹配输入数据的模式。如果省略,则 awk 将对所有行进行操作。

{action}:是在匹配到模式的行上执行的动作。如果省略,则默认动作是打印整行。

options 参数说明:

-F <分隔符> 或 --field-separator=<分隔符>: 指定输入字段的分隔符,默认是空格。使用这个选项可以指定不同于默认分隔符的字段分隔符。

-v <变量名>=<值>: 设置 awk 内部的变量值。可以使用该选项将外部值传递给 awk 脚本中的变量。

-f <脚本文件>: 指定一个包含 awk 脚本的文件。这样可以在文件中编写较大的 awk 脚本,然后通过 -f 选项将其加载。

-v 或 --version: 显示 awk 的版本信息。

-h 或 --help: 显示 awk 的帮助信息,包括选项和用法示例。

2. 基础打印和字段操作

2.1 打印整行

如:awk '{print}'  02.txt。这个命令和cat 02.txt的效果一样。但是,当你需要执行更复杂的文本处理任务时,awk 就会变得非常有用。

2.2 打印特定列

如:awk '{print $1,$2}' 02.txt,打印每一行的第一列和第二列。

(注意每两个字段之间都有一个空格)

2.3 使用分隔符指定列

如:awk -F',' '{print $1, $2}' 02.txt,将‘,’换成 空格。

3. 变量和计算

3.1 计算列的总和

如:awk '{sum += $1} END {print sum}'  02.txt。

3.2 条件计算和打印

如:awk '$1 > 10 { print $1 }' 1.txt。

4.条件语句和循环

4.1 if-else条件语句

如:awk '{ if ($1 > 10) print "Number is greater than 10"; else print "Number is 10 or less" }' 1.txt。

4.2  for循环遍历字段

如:awk '{ for(i=1; i<=NF; i++) print $i }' 1.txt。

遍历每一行的每个字段并打印它们。

5. 内置函数和正则表达式

5.1 使用内置函数打印行长度

如:awk '{ print length }' 1.txt。

打印文件1.txt中每行的字符数。

5.2 使用正则表达式匹配并打印

awk '/pattern/ {print NR, $0}' file

'/pattern/':这是一个模式匹配操作。awk 会逐行读取 file 的内容,并且只有当某行包含 pattern 这个模式时,才会执行大括号 {} 内的动作。这里的 pattern 可以是任何正则表达式,用于匹配文本。

如:awk '/1,2,3/ {print NR, $0}' 02.txt。

6. 文件操作和其他高级功能

6.1 从其他命令读取数据

如:echo -e "a 1\nb 2" | awk '{ print $2, $1 }'。

6.2 多文件处理

如:awk 'FNR==1 {print FNR, " ", $0}' 1.txt 3.txt。

打印file1和file2的第一个文件记录号(FNR)和对应的整行内容。

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

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

相关文章

tessy 编译错误总结

目录 1,tessy 单元测试 TDE 界面 数据无法填充:the test object interface is incomplete 2,tessy 编译报错:单元测试时,普通桩函数内容相关异常场景 3,tessy 编译报错:模块分析后 头文件 找不到 4,tessy 集成测试:SCE界面component函数太多 5,tessy 编译报错:函…

Java 10新特性介绍

Java 10是Java平台的一个重要更新&#xff0c;它引入了多项新特性和改进。以下是一些主要的新特性&#xff1a; 局部变量类型推断&#xff08;var关键字&#xff09; Java 10允许使用var关键字来声明局部变量&#xff0c;而无需显式指定变量的类型。编译器会根据变量赋值的上下…

non_blocking=True 与 torch.cuda.synchronize()

需要注意的是&#xff1a;GPU和CPU之间是异步执行的&#xff0c;CPU向GPU下达指令以后会立刻执行之后的代码&#xff0c;CPU不会等待GPU执行完成 一、non_blockingTrue 目的&#xff1a;压缩gpu的效果&#xff0c;避免CPU与GPU设备数据传输时间开销带来的计算效率低下 在 P…

Android获取控件宽高的几种方式

第一种方式&#xff1a;在需要时获取&#xff0c;如控件点击时再获取 button.setOnClickListener(new View.OnClickListener() { Override public void onClick(View v) { getTextWidthAndHeight(); } }); 第二种方式&#xff1a;重写onWindowFocusChanged()方法 Overr…

【SQL】varchar 与 char 的区别

在 SQL 中&#xff0c;VARCHAR 和 CHAR 是用于存储字符串类型数据的两种数据类型&#xff0c;但它们在存储方式和性能上有显著的区别。 CHAR 定义: CHAR 是一种固定长度的字符串数据类型。长度: 你需要在定义表结构时指定长度&#xff0c;例如 CHAR(10)。存储方式: 无论实际存…

【机器学习】机器学习赋能交通出行:智能化实践与创新应用探索

&#x1f4dd;个人主页&#x1f339;&#xff1a;Eternity._ &#x1f339;&#x1f339;期待您的关注 &#x1f339;&#x1f339; ❀目录 &#x1f4d2;1. 引言&#x1f4d9;2. 交通流量预测与优化&#x1f31e;数据准备&#x1f319;模型训练与预测⭐评估模型与优化 &#x…

jsonpath_解析例子代码

# _*_ coding : utf-8 _*_ # Time : 2023-11-05 13:23 # Author : haowen # File : jsonpath_解析_淘票票 # Project : py练习 import urllib.request url https://dianying.taobao.com/cityAction.json?activityId&_ksTS1699161894273_112&jsoncallbackjsonp113&…

网页抓取单词关联

在当今数字化的时代&#xff0c;数据的获取与处理成为了众多企业和开发者关注的焦点。API 服务的出现&#xff0c;为我们打开了高效、便捷获取和利用数据的新大门。接下来&#xff0c;为您介绍几款独具特色的 API 服务&#xff0c;它们将为您的业务和开发工作带来前所未有的便利…

ABB机械手3HAC024518-001电机振动过大维修方案

【ABB机械臂伺服电机维修方案】 1. 更换轴承 如果检查发现轴承磨损&#xff0c;我们需要更换新的轴承。请选择与原轴承型号相同的产品&#xff0c;以确保电机正常运行。 2. 重新平衡转子 如果ABB机械手3HAC024518-001电机转子不平衡&#xff0c;我们需要重新平衡转子。这可以通…

棉花叶子病害分类数据集3601张6类别

数据集类型&#xff1a;图像分类用&#xff0c;不可用于目标检测无标注文件 数据集格式&#xff1a;仅仅包含jpg图片&#xff0c;每个类别文件夹下面存放着对应图片 图片数量(jpg文件个数)&#xff1a;3601 分类类别数&#xff1a;6 类别名称:[“aphids”,“army_worm”,“bact…

小熊文件工具箱免费版

小熊文件工具箱是一款基于本地离线操作的一系列工具的合集&#xff0c;最大特点是各种批量任务的执行&#xff0c;包含了智能证件照&#xff0c;自动抠图&#xff0c;直播录制&#xff0c;九宫格切图&#xff0c;拼图&#xff0c;视频格式转换及压缩&#xff0c;zip压缩解压缩&…

Python一文轻松搞定正则匹配

一、前言 日常工作中&#xff0c;不可避免需要进行文件及内容的查找&#xff0c;替换操作&#xff0c;python的正则匹配无疑是专门针对改场景而出现的&#xff0c;灵活地运用可以极大地提高效率&#xff0c;下图是本文内容概览。 ​ 二、正则表达式符号 对于所有的正则匹配表达…

C++中的抽象类和纯虚函数。

在C中&#xff0c;抽象类和纯虚函数是面向对象编程的两个重要概念&#xff0c;它们允许我们定义接口和强制派生类实现特定的行为。 抽象类&#xff08;Abstract Class&#xff09; 抽象类是一种特殊的类&#xff0c;它不能被实例化&#xff08;即不能创建抽象类的对象&#x…

MySQL的DML语句

文章目录 ☃️概述☃️DML☃️添加数据☃️更新和删除数据☃️DML的重要性 ☃️概述 MySQL 通用语法分类 ● DDL: 数据定义语言&#xff0c;用来 定义数据库对象&#xff08;数据库、表、字段&#xff09; ● DML: 数据操作语言&#xff0c;用来对数据库表中的数据进行增删改 …

佳能打印机问题解决

佳能家用打印机加墨水但是墨盒不到中间来怎么处理 您好亲&#xff0c; 一、真堵原因&#xff1a; 1、打印间隔时间太长&#xff0c;造成打印头干沽结皮 。 每15天开动打印机打印一张全色文档。 2、封条未撕开&#xff0c;空气不进入。将黄色封条撕开重装墨盒。 3、经长时间…

Android系统揭秘(一)-Activity启动流程(上)

public ActivityResult execStartActivity( Context who, IBinder contextThread, IBinder token, Activity target, Intent intent, int requestCode, Bundle options) { IApplicationThread whoThread (IApplicationThread) contextThread; … try { … int result …

TCP 和 UDP 可以同时绑定相同的端口吗?

在网络编程中&#xff0c;TCP和UDP都可以绑定到同一个端口上进行通信。TCP和UDP是OSI模型中的传输层协议&#xff0c;它们分别使用不同的端口号来区分不同的应用程序或服务。 TCP&#xff08;Transmission Control Protocol&#xff09;提供了面向连接的、可靠的传输服务&…

C高级编程笔记

提升方向&#xff1a; 1. **深入理解指针**: 指针的高级用法&#xff0c;包括指针的指针、函数指针、指针与数组、指针与结构体的深入应用等。 指针数组&#xff1a;本质是数组 1.指针数组的每个元素都是一个一级指针&#xff0c;每个元素都有自己独立的内存地址 2.应用于…

新零售解决方案:线上线下融合,驱动现代商业新浪潮-亿发

在数字化和智能化的商业环境中&#xff0c;新零售正在迅速改变传统的商业模式。作为新时代的零售解决方案&#xff0c;新零售通过线上线下深度结合&#xff0c;为企业提供了更灵活、高效的运营方式。本文将探讨新零售的四大特征&#xff0c;并详细描述其在中小企业中的应用&…

虚拟机没关机,电脑直接关机导致虚拟机无法使用

虚拟机没关机&#xff0c;电脑直接关机导致虚拟机无法使用 虚拟机未正常关机 无法打开虚拟机&#xff0c;移除 删除虚拟机目录下的该文件夹CentOSXX.vmx.lck&#xff08;或者重新命名&#xff09; 虚拟机正常打开