Linux/Unix 中的 AWK 命令

2023-11-15

AWK 适用于模式搜索和处理。该脚本运行以搜索一个或多个文件以识别匹配模式以及所述模式是否执行特定任务。在本指南中,我们将了解 AWK Linux 命令并了解它的功能。

AWK 可以执行哪些操作?

  • 逐行扫描文件
  • 将每个输入行拆分为字段
  • 将输入行和字段与模式进行比较
  • 对匹配行执行指定操作

AWK 命令的用途

  • 更改数据文件
  • 生成格式化报告

awk 命令的编程概念

  • 设置输出行格式
  • 条件和循环
  • 算术和字符串运算

AWK 语法

$ awk options 'selection _criteria {action }' input-file > output-file

To demonstrate more about AWK usage, we are going to use the text file called file.txt awk command example file 1st column => Item, 2nd column => Model 3rd column => Country 4th column => Cost

awk 命令示例

打印特定列

要打印第二列和第三列,请执行以下命令。

$ awk '{print $2 "\t" $3}' file.txt

Output Awk Print Second And Third Column

打印文件中的所有行

如果您想列出文件中的所有行和列,请执行

$ awk ' {print $0}' file.txt

Output Awk Print All Lines

打印与特定模式匹配的所有行

如果要打印与特定模式匹配的行,语法如下所示

$ awk '/variable_to_be_matched/ {print $0}' file.txt

例如,要匹配所有带有字母“o”的条目,语法将是

$ awk '/o/ {print $0}' file.txt

Output awk linux command matching all lines To match all entries with the letter ‘e’

$ awk '/e/ {print $0}' file.txt

Output Awk Matching Lines With E

打印与特定模式匹配的列

当 AWK 找到模式匹配时,该命令将执行整个记录。您可以通过发出仅显示某些字段的指令来更改默认值。例如:

$ awk '/a/ {print $3 "\t" $4}' file.txt

The above command prints the 3rd and 4th columns where the letter ‘a’ appears in either of the columns Output Awk Matching Column

计数并打印匹配的图案

您可以使用 AWK 来计算并打印每个模式匹配的行数。例如,下面的命令计算匹配模式出现的实例数

$ awk '/a/{++cnt} END {print "Count = ", cnt}' file.txt

Output Count Columns Matching a pattern

AWK 有一个内置的长度函数,可以返回字符串的长度。命令 $0 变量存储整行,并且在没有正文块的情况下,将采取默认操作,即打印操作。因此,在我们的文本文件中,如果一行超过 18 个字符,则比较结果为 true,并且该行将按如下所示打印。

$ awk 'length($0) > 20' file.txt

Output Print Lines With More Or Less Characters

将 AWK 的输出保存到不同的文件

如果您希望保存结果的输出,请使用 > 重定向运算符。例如

$ awk '/a/ {print $3 "\t" $4}' file.txt > Output.txt

您可以使用 cat 命令验证结果,如下所示

$ cat output.txt

Output Awk Redirect Output

结论

AWK 是另一个简单的编程脚本,可用于操作文档中的文本或执行特定功能。共享命令是您还不知道或遇到的一些或许多命令。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Linux/Unix 中的 AWK 命令 的相关文章

  • centos7 RPM包之rpm命令

    RPM包与源码包的区别 1 软件包分类 源码包 C源代码包 rpm包 编译之后的二进制包 2 源码包 优点 开源 可以自由选择所需功能 可看源代码 卸载方便 直接删除安装位置 缺点 安装步骤过多 编译时间过长 3 RPM包 优点 使用简单
  • Linux命令-fsync

    对fsync命令只做简单介绍 不做详细原理解释 通过man命令查看fsync 2 函数有以下共识 1 fsync函数是属于系统核心函数 2 调用fsync函数会将修改的数据和文件描述符的属性持久化到存储设备中 3 fsync函数将内核缓存的
  • 计算机网络--linux下poll函数详解

    poll函数概述 select 和 poll 系统调用的本质一样 poll 的机制与 select 类似 与 select 在本质上没有多大差别 管理多个描述符也是进行轮询 根据描述符的状态进行处理 但是 poll 没有最大文件描述符数量的
  • Linux 中的导出命令

    在本指南中 我们将了解 Linux 中的导出命令 Export 是 Bash shell 的内置命令 它用于标记要传递给子进程的变量和函数 基本上 变量将包含在子进程环境中 而不会影响其他环境 为了更清楚地了解我们正在讨论的内容 让我们深入
  • 如何在 Ubuntu 18.04 上安装/卸载 NodeJS

    NodeJS 是一个 JavaScript 框架 可让您轻松构建快速的网络应用程序 在本指南中 我们将深入研究如何在 Ubuntu 18 04 上安装 NodeJS 步骤 1 将 NodeJS PPA 添加到 Ubuntu 18 04 首先
  • 在 Linux 中减小 PDF 文件大小

    在我们的 Linux 系统中 如果我们有一个很大的 PDF 文件 我们可能想减小它的大小 在本教程中 我们将了解在 Linux 中减小 PDF 大小或压缩 PDF 文件的不同方法 让我们找出一些命令行和 GUI 方法来处理这个问题 在 Li
  • 从hash函数到王小云的MD5破解

    理论计算机初步 从hash函数到王小云的MD5破解 摘自http zhiqiang org blog 446 html Zhang Zi September 18 2006 8 51 pm Filed under Computer Scie
  • 在 Ubuntu 18.04 上使用 Nginx 安装 WordPress

    WordPress是最受欢迎的开源内容管理系统 CMS 之一 与 Drupal 或 Joomla 等其他 CMS 相比 拥有高达 60 的市场份额 WordPress 可用于开发任何类型的网站 无论是博客 小型企业还是大型企业 凭借其免费和
  • error:expected '=',',',';','asm'or'_attribute_'

    今天在Linux上调一个存包队列 当用gcc编译时 出现error expected asm or attribute 等错误 这个错误是出现在两个函数上 这两个函数的返回类型是bool 当我把bool类型改为void 再进行编译时 错误就
  • Linux/UNIX 中的 ls 命令

    ls 命令是日常 Linux UNIX 操作中最常用的命令之一 该命令用于列出目录内的内容 是初学者从一开始就学习的少数命令之一 在本指南中 我们将讨论 Linux 中的常见 ls 命令以及可与该命令一起使用的其他参数 使用不带任何参数的
  • Linux用户态和内核态

    1 用户态和内核态的概念区别 究竟什么是用户态 什么是内核态 这两个基本概念以前一直理解得不是很清楚 根本原因个人觉得是在于因为大部分时候我们在写程序时关注的重点和着眼的角度放在了实现的功能和代码的逻辑性上 先看一个例子 1 例子 void
  • 用Vmware和vm tools虚拟机装Linux Ubuntu16 配置anaconda python3环境 安装tensorflow/tflearn

    Authoried by Monana Contact me via hemonan vip 163 com 本教程适合虚拟机 也适合不用虚拟机直接用Linux系统的 0 安装前的准备答疑 1 很多人都会有疑问 我到底在虚拟机里装linux
  • Linux/Unix 中的 AWK 命令

    AWK 适用于模式搜索和处理 该脚本运行以搜索一个或多个文件以识别匹配模式以及所述模式是否执行特定任务 在本指南中 我们将了解 AWK Linux 命令并了解它的功能 AWK 可以执行哪些操作 逐行扫描文件 将每个输入行拆分为字段 将输入行
  • Ubuntu18.04 windows10双系统安装解决grub引导问题

    最近给服务器的电脑升级了ubuntu18 直接用u盘安装 老是说grub引导问题 网上有很多教程真的坑人 说的含含糊糊的 不知道在卖弄什么关子 我参照这两个教程解决了安装问题 十分钟就装好了 感谢你们 https blog csdn net
  • select函数详解

    select函数的功能和调用顺序 使用select函数可以完成非阻塞方式工作的程序 它能够监视我们需要监视的文件描述符的变化情况 读写或是异常 非阻塞方式 non block 就是进程或线程执行此函数时不必非要等待事件的发生 一旦执行肯定返
  • 如何在 Linux/Ubuntu 中使用 PhotoRec 恢复已删除的文件

    不小心删除了文件或照片 在本教程中 我们将学习如何使用 PhotoRec 在 Linux 中恢复已删除的文件 在之前的教程中 我们讨论了使用名为的 Linux 实用程序恢复已删除文件的步骤TestDiskPhotoRec 实用程序是由同一家
  • C语言函数操作大全----(超详细)

    fopen 打开文件 相关函数 open fclose 表头文件 include
  • 在 Linux 中创建分区 - 分步指南

    在本教程中 我们将介绍在 Linux 中创建分区的步骤 这可以帮助您为特定用途分配不同的内存区域 创建分区还可以帮助您在计算机上安装多个操作系统 并最大限度地减少磁盘损坏时的损坏 如何在Linux中创建分区 在本教程中 我们将使用 fdis
  • Centos7 安装Redis详细教程

    本文主要介绍如果在Centos7下安装Redis 1 安装依赖 redis是由C语言开发 因此安装之前必须要确保服务器已经安装了gcc 可以通过如下命令查看机器是否安装 gcc v 如果没有安装则通过以下命令安装 yum install y
  • 如何在 Linux 上安装 TestDisk 并恢复已删除的文件

    您是否曾经遇到过不小心删除文件的情况 在本教程中 我们将介绍如何在 Linux 中安装 TestDisk 并恢复已删除的文件 在本教程中 我将使用 Ubuntu 服务器进行工作 但即使您使用任何其他发行版 也可以遵循相同的步骤 唯一不同的是

随机推荐

  • Bash 序列表达式(范围)

    在本文中 我们将介绍 Bash 中序列表达式的基础知识 Bash 序列表达式通过定义范围的起点和终点来生成整数或字符范围 一般与以下组合使用for loops Bash 序列表达式 序列表达式采用以下形式 START END INCREME
  • 如何使用 psql 列出 PostgreSQL 数据库和表

    给药时PostgreSQL在数据库服务器中 您可能执行的最常见任务之一是列出数据库及其表 PostgreSQL 附带了一个交互式工具 称为psql 它允许您连接到服务器并对其运行查询 使用时psql您还可以利用它的元命令 这些命令对于脚本编
  • Linux 中的 Gunzip 命令

    Gunzip 是一个用于解压缩 Gzip 文件的命令行工具 Gzip 是最流行的压缩算法之一 它可以减小文件大小并保留原始文件模式 所有权和时间戳 按照惯例 使用 Gzip 压缩的文件要么是 gz or z扩大 在本教程中 我们将解释如何使
  • 如何在 CentOS 7 上安装和配置 Squid 代理

    Squid 是一个功能齐全的缓存代理 支持流行的网络协议 如 HTTP HTTPS FTP 等 将 Squid 放置在 Web 服务器前面可以通过缓存重复请求 过滤 Web 流量和访问地理限制内容来极大地提高服务器性能 本教程介绍如何在 C
  • 如何在 Ubuntu 18.04 上安装 Gitea

    Gitea 是一个用 Go 编写的自托管开源 git 服务器 它是一个叉子Gogs Gitea 包括存储库文件编辑器 项目问题跟踪 用户管理 通知 内置 wiki 等等 Gitea是一个轻量级应用程序 可以安装在低功耗系统上 如果您正在寻找
  • 如何在 Ubuntu 20.04 上添加和删除用户

    配置新 Ubuntu 系统时的首要任务之一是添加和删除用户 每个用户可以对各种命令行和 GUI 应用程序拥有不同的权限级别和特定设置 本文介绍如何在 Ubuntu 18 04 上添加和删除用户帐户 在你开始之前 仅 root 或具有 sud
  • 如何在 Raspberry Pi 上安装 Plex 媒体服务器

    Raspberry Pi 可用于许多不同的项目 Raspberry Pi 最受欢迎的用例之一是将 Raspberry Pi 变成家庭媒体中心 Plex 是一款流行的流媒体服务器 可让您组织视频 音乐和照片收藏 并将它们随时随地流式传输到您的
  • 如何在 Ubuntu 18.04 上安装 Node.js 和 npm

    Node js 是一个开源跨平台 JavaScript 运行时环境 允许服务器端执行 JavaScript 代码 这意味着您可以在计算机上将 JavaScript 代码作为独立应用程序运行 无需使用任何 Web 浏览器 Node js 主要
  • 如何在 CentOS 7 上部署 Mattermost

    Mattermost 是一个开源即时通讯平台 是一个自托管的 Slack 替代品 它是用 Golang 和 React 编写的 可以使用 MySQL 或 PostgreSQL 作为数据库后端 Mattermost 将您的所有团队沟通集中到一
  • 如何在 CentOS 7 上安装 Plex 媒体服务器

    Plex 是一款流媒体服务器 可将您所有的视频 音乐和照片收藏集中在一起 并随时随地将它们流式传输到您的设备 在本教程中 我们将向您展示如何安装和配置Plex 媒体服务器在 CentOS 7 上 先决条件 在继续本教程之前 请确保您以以下身
  • Linux 中的 df 命令(检查磁盘空间)

    我的硬盘还剩多少空间 是否有足够的可用磁盘空间来下载大文件或安装新应用程序 在 Linux 和 Unix 操作系统上 您可以使用df命令获取有关系统磁盘空间使用情况的详细报告 使用 df 命令 的一般语法为df命令如下 df OPTIONS
  • 如何在 CentOS 8 上安装 Node.js 和 npm

    Node js 是一个基于 Chrome JavaScript 构建的跨平台 JavaScript 运行时环境 旨在在服务器端执行 JavaScript 代码 使用 Node js 您可以构建可扩展的网络应用程序 npm 是 Node Pa
  • 如何在 Debian 9 上安装 Webmin

    Webmin是一个用于管理 Linux 服务器的开源 Web 控制面板 使用 Webmin 您可以管理系统用户 组 磁盘配额以及配置最流行的服务 包括 Web ssh ftp 电子邮件和数据库服务器 本教程介绍如何在 Debian Linu
  • 如何在 Debian 11 上为专用连接设置 Squid 代理

    介绍 代理服务器是一种服务器应用程序 充当最终用户和互联网资源之间的网关 通过代理服务器 最终用户能够出于多种目的控制和监视其 Web 流量 包括隐私 安全和缓存 例如 您可以使用代理服务器从与您自己的 IP 地址不同的 IP 地址发出 W
  • 如何在 Ubuntu 16.04 上安装 MySQL

    介绍 MySQL是一个开源数据库管理系统 通常作为流行的一部分安装LAMP Linux Apache MySQL PHP Python Perl 堆栈 它使用关系数据库和 SQL 结构化查询语言 来管理其数据 简短版本的安装很简单 更新您的
  • Java IO 教程

    Java提供了几个类java io用于处理文本 流数据和文件系统的包 我最近提供了几个有关 Java 文件和 Java IO 的示例 这篇文章是所有 Java IO 文章的索引 Java IO 如何在 Java 中创建新文件在这篇文章中 您
  • Java Stream Collect() 方法示例

    Java Streamcollect 对流的元素执行可变归约操作 这是终端操作 什么是可变约简操作 可变归约操作处理流元素 然后将其累积到可变结果容器中 处理元素后 组合函数将合并所有结果容器以创建结果 Java Stream Collec
  • 快速初始化()

    在本 Swift 教程中 我们将讨论一个重要的概念 即 Swift init 或 Swift 初始化 初始化是当我们创建某种类型的实例时发生的事情 快速初始化 初始化是准备类 结构或枚举的实例以供使用的过程 此过程涉及为该实例上的每个存储属
  • 如何在 Debian Wheezy 上使用 Postfix 安装和配置 DKIM

    介绍 对于大多数邮件服务器管理员来说 被错误地标记为垃圾邮件发送者所带来的挫败感并不奇怪 通过排除服务器受损的可能性 错误标记通常是由以下原因之一引起的 该服务器是一个开放的邮件中继 发件人或服务器的 IP 地址已列入黑名单 服务器没有完全
  • Linux/Unix 中的 AWK 命令

    AWK 适用于模式搜索和处理 该脚本运行以搜索一个或多个文件以识别匹配模式以及所述模式是否执行特定任务 在本指南中 我们将了解 AWK Linux 命令并了解它的功能 AWK 可以执行哪些操作 逐行扫描文件 将每个输入行拆分为字段 将输入行