【linux】awk的基本使用

awk是shell中一个强大的文本处理工具,被用于处理文本和数据

当你心中默念想要使用类似于

处理某一行,处理某一列 的文本

的功能时,就是awk登场的时候了

举个简单的例子是,当我们想知道自己的所有网卡的名字时,可以用ifconfig查看

enp3s0f0: flags=4099<UP,BROADCAST,MULTICAST>  mtu 1500
        ether 98:fa:9b:fb:15:f7  txqueuelen 1000  (Ethernet)
        RX packets 0  bytes 0 (0.0 B)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 0  bytes 0 (0.0 B)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

lo: flags=73<UP,LOOPBACK,RUNNING>  mtu 65536
        inet 127.0.0.1  netmask 255.0.0.0
        inet6 ::1  prefixlen 128  scopeid 0x10<host>
        loop  txqueuelen 1000  (Local Loopback)
        RX packets 22442  bytes 2200764 (2.0 MiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 22442  bytes 2200764 (2.0 MiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

wlp1s0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.40.162  netmask 255.255.255.0  broadcast 192.168.40.255
        inet6 2405:1201:1203:b300::6fe:659a  prefixlen 128  scopeid 0x0<global>
        inet6 fe80::d3f0:6ff7:5950:bbfe  prefixlen 64  scopeid 0x20<link>
        inet6 2405:1201:1203:b300:e4a6:88ce:3460:f061  prefixlen 64  scopeid 0x0<global>
        ether 28:7f:cf:53:02:96  txqueuelen 1000  (Ethernet)
        RX packets 2431832  bytes 2540254972 (2.3 GiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 1357755  bytes 280044371 (267.0 MiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

我们会看到类似于上述信息一样密密麻麻的文字,当然我们可以手动CTRL C CTRL V 把网卡名称拿出来,但是如果希望有一种写法可以不用手动去查看获取的话,可以试试使用awk

ifconfig | awk -F: '/^[a-z0-9]*:{1}/ {print $1 }'

基本用法

打印文件的每一行,其中filename是文件名(或者可访问路径)

重要的是引号之内的写法

awk '{print}' filename

print如果没有加任何参数的话就是打印一整行的意思,如果加上 $数字 的话,就是打印第几列

一般来说用空格分隔开

比如打印每一行的第一列

awk '{print $1}' filename

打印每一行的第二列

awk '{print $2}' filename

并且 列 是可以多选的

awk '{print $3, $4}' filename

使用条件语句进行判断,只打印出正数,比如我们想要从账单中取出所有收入的部分

awk '$1 > 0 {print $1}' filename

打印的时候顺便带上行号

awk '{print NR, $0}' filename

可以同时处理多个文件(上面有一个例子是可以处理多个列)

会按照file1 然后 file2 的顺序输出

awk '{print}' file1 file2

还有最常用的正则表达式处理数据

awk '/pattern/ {print}' filename

以某种字符作为分割符,因为默认是空格作为分割的条件

但是不同的情况下希望使用不同的分割符

比如192.168.xxx.xxx的时候,在局域网中前两部分是一样的,所以如果想用小数点作为分割方式的话,直接使用 -F 然后紧跟着你要指定的分隔符就行了

除此之外还可以用 / 分割日期, : 分割时间等

echo 192.168.11.123 | awk -F. '{print $3,$4}'

还可以使用自定义变量进行更灵活地数据处理(文本数据)

awk -v var=100 '{if ($1 > var) print $1}' filename

以上就是最基本的awk的几种使用情况

使用awk的时候通常对象要有以下特点才最容易使用

1 行之间有特定的规律,虽然是文本结构,但是具有表的特点,比如第一列是名字,第二列是ip,并且每行或者每n行代表一个记录

2 具有同一的分隔符的时候

这两种情形的文本在实际的linux系统中常见于各种config文件和log中

可以说用处十分广 

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

繁花的范总-UMLChina建模知识竞赛第5赛季第3轮

DDD领域驱动设计批评文集 做强化自测题获得“软件方法建模师”称号 《软件方法》各章合集 参考潘加宇在《软件方法》和UMLChina公众号文章中发表的内容作答。在本文下留言回答。 只要最先答对前3题&#xff0c;即可获得本轮优胜。 如果有第4题&#xff0c;第4题为附加题&am…

OpenHarmony—Linux之系统调用

Linux之系统调用 这里我们只讨论&#xff1a; 硬件&#xff1a; Arm64系统&#xff1a; Linux系统 (Kernel-5.15-rc1)高级语言&#xff1a; C &#xff08;glibc-2.34&#xff09;模式&#xff1a; 64位 &#xff08;即未定义CONFIG_COMPAT&#xff09; 2、什么是系统调用 …

主键(设置/删除方法,复合主键),唯一键,主键和唯一键的应用差异,自增长字段(如何实现,查看上次的值),外键(引入,外键约束)

目录 主键(primary key) 介绍 作用 设置主键 建表前 建表后 复合主键 介绍 示例 删除主键 唯一键(unique) 介绍 意义 示例 建表 主键 唯一键 插入数据示例 主键和唯一键的应用差异 主键 唯一键 索引 auto_increment 介绍 示例 自动插入 手动插入 …

电子签章系统,怎么做到大量文件自动电子签章?

在当今信息爆炸的时代&#xff0c;海量文件的签署管理成为各行业面临的挑战之一。电子签章系统的出现&#xff0c;为解决这一问题提供了有效途径。本文将探讨电子签章系统如何实现海量文件自动签章&#xff0c;提高工作效率并确保安全性。 钉钉、企微、飞书、OA、CRM、ERP等&a…

K8S API访问控制之RBAC利用

前言 K8S对于API的访问安全提供了访问控制&#xff0c;主要为4个阶段&#xff0c;本文为第二个阶段——鉴权的RBAC。RBAC是基于角色的访问控制&#xff0c;使用kubeadm安装集群1.6版本以上的都默认开启了RBAC。本文主要研究集群可能存在的利用点及相对应的利用手法。 API访问…

图像的初识

一、图像的数组表示 RGB能够构成人眼所能识别的所有颜色。 二、图像的变换 Example&#xff1a; img.shape Out[329]: (512, 768, 3) img.dtype Out[330]: dtype(uint8) #补值变换 shift_temp_img [255,255,255] - img shift_img Image.fromarray(shift_temp_img.astype(ui…

机器学习~从入门到精通(二)线性回归算法和多元线性回归

为什么要做数据归一化 一、数据归一化&#xff1a; 1.最值归一化 2.均值方差归一化import numpy as npX np.random.randint(1,100,size100) X X.reshape(-1,2) X.shape X np.array(X,dtypefloat) X[:,0] (X[:,0]-np.min(X[:,0]))/(np.max(X[:,0])-np.min(X[:,0])) X[:,1]…

class_4:car类

#include <iostream> using namespace std; class Car{ public://成员数据string color; //颜色string brand; //品牌string type; //车型int year; //年限//其实也是成员数据&#xff0c;指针变量&#xff0c;指向函数的变量&#xff0c;并非真正的成员函数void (*…

强化学习应用(六):基于Q-learning的物流配送路径规划研究(提供Python代码)

一、Q-learning算法简介 Q-learning是一种强化学习算法&#xff0c;用于解决基于马尔可夫决策过程&#xff08;MDP&#xff09;的问题。它通过学习一个值函数来指导智能体在环境中做出决策&#xff0c;以最大化累积奖励。 Q-learning算法的核心思想是使用一个Q值函数来估计每…

C# .NET SQL sugar中 IsAny进行根据条件判断数据是否存在 IsAny的使用

SQL sugar 中控制器直接判断数据是否存在 首先确保你的Service层继承的表名 控制器中使用IsAny进行根据条件判断数据是否存在

Redis命令 - Sets命令组常用命令

Set集合&#xff0c;无序&#xff0c;一堆不重复值的组合。利用redis提供的set数据结构&#xff0c;可以存储一些集合性的数据。 使用场景&#xff1a;例如&#xff0c;实现如共同关注、共同喜好、二度好友等 1、SADD key member [member …] 向集合中添加一个或者多个成员 …

Windows Server调整策略实现999999个远程用户用时登录

正文共&#xff1a;1234 字 23 图&#xff0c;预估阅读时间&#xff1a;2 分钟 上篇文章中&#xff08;Windows Server 2019配置多用户远程桌面登录服务器&#xff09;&#xff0c;我们主要介绍了Windows Server 2019在配置远程桌面时&#xff0c;如何通过3种方式创建本地用户账…

Harbor安装

采用原生的方式安装Harbor 下载Harbor安装包&#xff1a;https://github.com/goharbor/harbor/releases/download/v2.3.4/harbor-offline-installer-v2.3.4.tgz 拖拽到Linux并解压&#xff1a; tar -zxvf harbor-offline-installer-v2.3.4.tgz -C /usr/local/修改Harbor配置文…

Python-AST语法树

一、抽象语法树 1、什么是抽象语法树 在计算机科学中&#xff0c;抽象语法树&#xff08;abstract syntax tree &#xff0c;AST&#xff09;&#xff0c;是源代码的抽象语法结构的树状表现形式&#xff0c;这里特指编程语言的源代码。AST是编译器或解释器在处理源代码时所使…

原子类-入门介绍和分类说明、基本类型原子类

Atomic翻译成中文是原子的意思。在化学上,我们知道原子是构成一般物质的最小单位,在化学 反应中是不可分割的。在我们这里Atomic是指一个操作是不可中断的。即使是在多个线程一起执 行的时候,一个操作一旦开始,就不会被其他线程干扰。 基本类型原子类 AtomicInteger:整…

QT上位机开发(权限管理)

【 声明&#xff1a;版权所有&#xff0c;欢迎转载&#xff0c;请勿用于商业用途。 联系信箱&#xff1a;feixiaoxing 163.com】 如果只是简单的工具软件&#xff0c;其实是没有权限管理这么一说的。比如说&#xff0c;串口工具、485工具之类的软件&#xff0c;其实根本不存在所…

哈希表与哈希算法(Python系列30)

在讲哈希表数据结构和哈希算法之前&#xff0c;我想先刨析一下数组和python中的列表 首先来讲一下数组&#xff0c;我想在这提出一个疑问&#xff1a; 为什么数组通过索引查询数据的时间复杂度为O(1)&#xff0c;也就是不管数组有多大&#xff0c;算法的执行时间都是不变的。…

数据在AI图像修复任务中的核心作用

在人工智能&#xff08;AI&#xff09;领域&#xff0c;数据的重要性不言而喻。尤其在图像修复任务中&#xff0c;数据的精度和质量直接影响着AI模型的性能。图像修复是指利用AI技术自动识别图像中的缺陷或遮挡物&#xff0c;并对其进行修复或还原的过程。这项技术广泛应用于各…

LLM大模型和数据标注

对于那些不精通机器学习的人来说&#xff0c;像 ChatGPT 所基于的 GPT-3.5 这样的大型语言模型似乎是自给自足的。这些模型通过无监督或自我监督学习进行训练。简而言之&#xff0c;只需极少的人工干预&#xff0c;就能生成一个能像人类一样对话的模型。 这就引出了一个问题--…

3.三极管和MOS管

3.三极管和MOS管 基础知识三极管是电流控制型器件MOS管是电压控制型器件 分类及引脚定义电流导通方向基础应用常用MOS管电平转换电路MOS管实现电平转换用MOS管实现的“I2C总线电平转换电路”&#xff0c;实现3.3V电压域与5V电压域间的双向通讯 基础知识 三极管是电流控制型器件…
最新文章