当前位置: 首页 > news >正文

Linux|了解如何使用 awk 内置变量

引言

当我们揭开 Awk 功能部分时,我们将介绍 Awk 中内置变量的概念。您可以在 Awk 中使用两种类型的变量:用户定义的变量和内置变量。

alt

内置变量的值已经在 Awk 中定义,但我们也可以仔细更改这些值,内置变量包括:

  1. FILENAME :当前输入文件名(不要更改变量名)
  2. FR :当前输入行号(即输入行1、2、3……以此类推,不要更改变量名)
  3. NF :当前输入行中的字段数(不要更改变量名称)
  4. OFS :输出字段分隔符
  5. FS :输入字段分隔符
  6. ORS:输出记录分隔符
  7. RS : 输入记录分隔符

实战

让我们继续说明上面一些 Awk 内置变量的使用:

要读取当前输入文件的文件名,可以使用 FILENAME 内置变量,如下所示:

awk ' { print FILENAME } ' ~/domains.txt 
alt

您将意识到,每个输入行都会打印出文件名,这是当您使用 FILENAME 内置变量时 Awk 的默认行为。

使用 NR 来计算输入文件中的行(记录)数,请记住,它还会计算空行,正如我们将在下面的示例中看到的那样。

当我们使用cat命令查看domains.txt文件时,它包含14行文本和2行空:

cat ~/domains.txt
alt
awk ' END { print "Number of records in file is: ", NR } ' ~/domains.txt 
alt

要计算记录或行中的字段数,我们使用 NR 内置变量,如下所示:

cat ~/names.txt
alt
awk '{ print "Record:",NR,"has",NF,"fields" ; }' ~/names.txt
alt

接下来,您还可以使用 FS 内置变量指定输入字段分隔符,它定义 Awk 如何将输入行划分为字段。

FS 的默认值是空格和制表符,但我们可以将 FS 的值更改为任何字符,以指示 Awk 相应地划分输入行。

有两种方法可以做到这一点:

  1. 一种方法是使用 FS 内置变量
  2. 第二个是调用 -F Awk 选项

考虑Linux系统上的文件/etc/passwd,该文件中的字段使用:字符分隔,因此当我们想要过滤掉某些字段时,我们可以将其指定为新的输入字段分隔符,如下例所示:

我们可以使用 -F 选项,如下所示:

awk -F':' '{ print $1, $4 ;}' /etc/passwd
alt

或者,我们还可以利用 FS 内置变量,如下所示:

awk ' BEGIN {  FS=“:” ; }  { print $1, $4  ; } ' /etc/passwd
alt

要指定输出字段分隔符,请使用 OFS 内置变量,它定义如何使用我们使用的字符分隔输出字段,如下例所示:

awk -F':' ' BEGIN { OFS="==>" ;} { print $1, $4 ;}' /etc/passwd
alt

在本文中,我们探讨了使用带有预定义值的 Awk 内置变量的想法。但是我们也可以更改这些值,不过,不建议这样做,除非您知道自己在做什么,并且有足够的理解。

本文由 mdnice 多平台发布

相关文章:

Linux|了解如何使用 awk 内置变量

引言 当我们揭开 Awk 功能部分时,我们将介绍 Awk 中内置变量的概念。您可以在 Awk 中使用两种类型的变量:用户定义的变量和内置变量。 内置变量的值已经在 Awk 中定义,但我们也可以仔细更改这些值,内置变量包括: FILEN…...

代码随想录-算法训练营day29【回溯算法05:递增子序列、全排列】

代码随想录-035期-算法训练营【博客笔记汇总表】-CSDN博客 第七章 回溯算法part05* 491.递增子序列 * 46.全排列 * 47.全排列 II详细布置 491.递增子序列 本题和大家刚做过的 90.子集II 非常像,但又很不一样,很容易掉坑里。 https://programmercarl.com…...

704. 二分查找

Problem: 704. 二分查找 🐷我的leetcode主页 文章目录 题目分类思路什么是二分查找如何理解时间复杂度 解题方法Code 题目 给定一个 n 个元素有序的(升序)整型数组 nums 和一个目标值 target ,写一个函数搜索 nums 中的 target&a…...

php回车变br、php显示br

在 PHP 中&#xff0c;如果你想将回车符&#xff08;\n&#xff09;转换为 HTML 的 <br> 标签来实现换行显示&#xff0c;可以使用内置函数 nl2br()。这个函数会将文本中的换行符替换为 <br> 标签。以下是使用 nl2br() 函数的示例代码&#xff1a; <?php $tex…...

找最大数字-第12届蓝桥杯国赛Python真题解析

[导读]&#xff1a;超平老师的Scratch蓝桥杯真题解读系列在推出之后&#xff0c;受到了广大老师和家长的好评&#xff0c;非常感谢各位的认可和厚爱。作为回馈&#xff0c;超平老师计划推出《Python蓝桥杯真题解析100讲》&#xff0c;这是解读系列的第60讲。 找最大数字&#…...

蓝桥杯 算法提高 ADV-1170 阶乘测试 python AC

找规律题&#xff0c;遍历i中有几个m就加几&#xff0c;和m的多少次数有关 第一版&#x1f447; try:while True:n, m map(int, input().split())ll [i for i in range(1, n 1) if i % m 0]ans len(ll)M mwhile ll:lll []M * mfor i in ll:if i % M 0:lll.append(i)a…...

阿里巴巴杭州全球总部正式启用,创新“减碳大脑”科技减碳 | 最新快讯

来源&#xff1a;封面新闻 封面新闻记者付文超 5 月 10 日&#xff0c;记者获悉&#xff0c;位于未来科技城的阿里巴巴杭州全球总部新园区正式启用&#xff0c;这是阿里巴巴目前最大的综合性办公园区。从空中俯瞰&#xff0c;园区正中央呈现阿里标志性的笑脸 logo&#xff0c;这…...

蓝桥杯国赛练习题真题Java(矩阵计数)

题目描述 一个 NM 的方格矩阵&#xff0c;每一个方格中包含一个字符 O 或者字符 X。 要求矩阵中不存在连续一行 3 个 X 或者连续一列 3 个 X。 问这样的矩阵一共有多少种&#xff1f; 输入描述 输入一行包含两个整数 N,M (1≤N,M≤5)。 输出描述 输出一个整数代表答案。…...

概念解析 | ROC曲线:评估分类模型

注1:本文系"概念解析"系列之一,致力于简洁清晰地解释、辨析复杂而专业的概念。本次辨析的概念是:ROC曲线的含义和绘制 概念解析 | ROC曲线:评估分类模型 第一部分:通俗解释 在我们的日常生活中,经常会遇到需要做出判断和选择的情况。比如,当你收到一封邮件时…...

数据可视化训练第二天(对比Python与numpy中的ndarray的效率并且可视化表示)

绪论 千里之行始于足下&#xff1b;继续坚持 1.对比Python和numpy的性能 使用魔法指令%timeit进行对比 需求&#xff1a; 实现两个数组的加法数组 A 是 0 到 N-1 数字的平方数组 B 是 0 到 N-1 数字的立方 import numpy as np def numpy_sum(text_num):"""…...

【Java EE】数据库连接池详解

文章目录 &#x1f38d;数据库连接池&#x1f338;Hikari&#x1f338;Druid &#x1f340;MySQL开发企业规范⭕总结 &#x1f38d;数据库连接池 在上⾯Mybatis的讲解中,我们使⽤了数据库连接池技术,避免频繁的创建连接,销毁连接 下⾯我们来了解下数据库连接池 数据库连接池负…...

正点原子[第二期]Linux之ARM(MX6U)裸机篇学习笔记-15.4讲 GPIO中断实验-IRQ中断服务函数详解

前言&#xff1a; 本文是根据哔哩哔哩网站上“正点原子[第二期]Linux之ARM&#xff08;MX6U&#xff09;裸机篇”视频的学习笔记&#xff0c;在这里会记录下正点原子 I.MX6ULL 开发板的配套视频教程所作的实验和学习笔记内容。本文大量引用了正点原子教学视频和链接中的内容。…...

如何平衡RPA机器人的安全性与业务敏捷性,同时不牺牲用户体验?

平衡RPA机器人的安全性与业务敏捷性&#xff0c;同时不牺牲用户体验&#xff0c;是RPA实施中的一个关键挑战。以下是一些策略和最佳实践&#xff1a; ### 1. 安全设计原则 从设计阶段就将安全性纳入考虑&#xff0c;遵循安全设计原则。这意味着在开发RPA解决方案时&#xff0…...

地球行星UE5和UE4

地球行星&#xff0c;包含多种地球风格&#xff0c;可蓝图控制自转和停止&#xff0c;可材质自转. 支持版本4.21-5.4版本 下载位置&#xff1a;https://mbd.pub/o/bread/ZpWZm5lv b站工坊&#xff1a;https://gf.bilibili.com/item/detail/1105582041 _______________________…...

7.k8s中的名称空间namespace

目录 一、Namespace(命名空间) 二、查看系统的名称空间 1.查看系统中的名称空间列表 2.单独查看一个名称空间下的对应资源 三、名称空间的管理 1.创建名称空间 1.1响应式创建 1.2声明式创建 2.删除名称空间 四、资源引用名称空间 一、Namespace(命名空间) 命名空间(Name…...

上海企业源代码防泄密解决方案,企业源代码防泄密如何应对?

随之互联网的发展&#xff0c;企业员工因离职把企业源代码泄露或删库跑路的事情屡见不鲜&#xff0c;各大互联网公司基本都会出现源代码泄露的事情&#xff0c;这样的问题也成了企业在发展过程中不可避免的问题。企业源代码泄露会给企业带来的损失也是不可估量的&#xff0c;据…...

将要上市的自动驾驶新书《自动驾驶系统开发》中摘录各章片段 4

第十三章 车联网 数字化设备正变得越来越普遍并且相互联系。这些设备向数字生态系统智能部分的演进创造了迄今为止尚未解决安全问题的新颖应用。一个特定的例子是车辆&#xff0c;随着车辆从简单的交通方式发展到具有新的感知和通讯功能的智能实体&#xff0c;就成为智能城市的…...

OpenSearch 与 Elasticsearch:7 个主要差异及如何选择

OpenSearch 与 Elasticsearch&#xff1a;7 个主要差异及如何选择 1. 什么是 Elasticsearch&#xff1f; Elasticsearch 是一个基于 Apache Lucene 构建的开源、RESTful、分布式搜索和分析引擎。它旨在处理大量数据&#xff0c;使其成为日志和事件数据管理的流行选择。 Elasti…...

[Docker]容器的网络类型以及云计算

目录 知识梗概 1、常用命令2 2、容器的网络类型 3、云计算 4、云计算服务的几种主要模式 知识梗概 1、常用命令2 上一篇已经学了一些常用的命令&#xff0c;这里补充两个&#xff1a; 导出镜像文件&#xff1a;[rootdocker ~]# docker save -o nginx.tar nginx:laster 导…...

VMP 简单源码分析(.net)

虚拟机 获取CPU的型号 实现了一个指令集解释器&#xff0c;每个操作码对应一个特定的处理函数&#xff0c;用于执行相应的指令操作。在执行字节码时&#xff0c;解释器会根据操作码查找并调用相应的处理函数来执行指令。 截获异常 先由虚拟机处理 处理不了再抛出异常 priva…...

AI智能体技能体系构建指南:从Awesome列表到实战应用

1. 项目概述&#xff1a;从“Awesome”列表到智能体技能体系的构建在AI智能体开发领域&#xff0c;我们常常面临一个核心困境&#xff1a;如何让一个智能体&#xff08;Agent&#xff09;具备解决复杂、多样化任务的能力&#xff1f;是投入大量资源从头训练一个“全能”模型&am…...

TrollInstallerX终极指南:3分钟完成iOS安装工具的零基础教程

TrollInstallerX终极指南&#xff1a;3分钟完成iOS安装工具的零基础教程 【免费下载链接】TrollInstallerX A TrollStore installer for iOS 14.0 - 16.6.1 项目地址: https://gitcode.com/gh_mirrors/tr/TrollInstallerX TrollInstallerX是一款专为iOS设备设计的智能越…...

从零部署openclaw:Docker Compose实战与避坑指南

1. 项目概述与核心价值最近在部署一个名为“openclaw”的开源项目时&#xff0c;我遇到了不少坑。这个项目在GitHub上的仓库是xujfcn/openclaw-deploy&#xff0c;从名字就能看出来&#xff0c;它是一个专注于部署的仓库&#xff0c;而不是主项目本身。我花了不少时间才搞清楚&…...

Win11Debloat免费工具:3步彻底清理Windows 11垃圾,性能提升51%

Win11Debloat免费工具&#xff1a;3步彻底清理Windows 11垃圾&#xff0c;性能提升51% 【免费下载链接】Win11Debloat A simple, lightweight PowerShell script that allows you to remove pre-installed apps, disable telemetry, as well as perform various other changes …...

OBS实时字幕插件完整指南:3分钟快速部署专业直播字幕

OBS实时字幕插件完整指南&#xff1a;3分钟快速部署专业直播字幕 【免费下载链接】OBS-captions-plugin Closed Captioning OBS plugin using Google Speech Recognition 项目地址: https://gitcode.com/gh_mirrors/ob/OBS-captions-plugin OBS实时字幕插件是一款基于Go…...

GTA5线上小助手:终极免费工具让你的洛圣都之旅更精彩

GTA5线上小助手&#xff1a;终极免费工具让你的洛圣都之旅更精彩 【免费下载链接】GTA5OnlineTools GTA5线上小助手 项目地址: https://gitcode.com/gh_mirrors/gt/GTA5OnlineTools 还在为GTA5线上模式中繁琐的操作而烦恼吗&#xff1f;想要更轻松地管理游戏数据、快速到…...

如何在5分钟内免费创建4K虚拟显示器:ParsecVDisplay终极指南

如何在5分钟内免费创建4K虚拟显示器&#xff1a;ParsecVDisplay终极指南 【免费下载链接】parsec-vdd ✨ Perfect virtual display for game streaming 项目地址: https://gitcode.com/gh_mirrors/pa/parsec-vdd 想要在Windows电脑上快速扩展工作空间&#xff0c;享受4K…...

基于httpx的异步HTTP客户端xcapy:提升开发效率与代码健壮性

1. 项目概述&#xff1a;一个为现代网络应用量身定制的HTTP客户端库在开发网络应用时&#xff0c;HTTP客户端是我们与外部世界沟通的桥梁。从调用一个公开的API接口&#xff0c;到抓取网页数据&#xff0c;再到构建微服务间的通信&#xff0c;一个稳定、高效且易于使用的HTTP客…...

别再手动敲空格了!用LaTeX的\parskip命令一键搞定论文段落间距(附局部调整技巧)

LaTeX段落间距精修指南&#xff1a;从全局配置到章节级微调 在学术写作的世界里&#xff0c;格式规范往往比内容本身更容易引发焦虑。当你在凌晨三点盯着屏幕&#xff0c;发现第17次调整的段落间距仍然不符合期刊要求时&#xff0c;那种绝望感足以让任何研究者崩溃。传统的手动…...

STM32F103C8T6连接移远EC200N-CN 4G模块:从硬件接线到TCP透传的保姆级避坑指南

STM32F103C8T6与移远EC200N-CN 4G模块深度开发实战 在物联网终端设备开发中&#xff0c;稳定可靠的网络连接是实现远程数据交互的核心基础。本文将详细介绍如何基于STM32F103C8T6微控制器与移远EC200N-CN 4G Cat.1模块构建完整的联网解决方案&#xff0c;涵盖硬件设计、AT指令交…...