awk_常用参数汇总

2024-09-06 19:28
文章标签 参数 汇总 常用 awk

本文主要是介绍awk_常用参数汇总,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

awk 是一个强大的文本处理工具,其中特殊变量用于管理和操作文本。以下是对你提到的变量的详细解释和示例:

NR:当前处理的行号。
NF:当前行的字段数。
FS:输入字段的分隔符。
OFS:输出字段的分隔符。
FNR:每个文件中独立计数的行号。
RS:输入记录的分隔符。
ORS:输出记录的分隔符。
  1. NR(Number of Records)
    NR 表示当前处理的记录数(行号),它从1开始,处理每行时自动递增。

示例:

apple
banana
cherry
命令:
awk '{print NR, $0}' file.txt
输出:
1 apple
2 banana
3 cherry
每行的行号通过 NR 输出。
  1. NF(Number of Fields)
    NF 表示当前记录中的字段数(列数)。

示例: 假设 file.txt 文件内容如下:

apple orange banana
apple orange
命令:
awk '{print $0, "- 字段数:", NF}' file.txt
输出:
apple orange banana - 字段数: 3
apple orange - 字段数: 2
  1. FS(Field Separator,输入字段分隔符)
    FS 是定义输入字段分隔符的变量,默认分隔符是空格或制表符。你可以通过 -F 参数指定分隔符,或者在脚本中直接定义 FS。

示例: 假设 file.txt 内容如下:

apple,orange,banana
apple,orange
命令:
awk -F, '{print $1, $2}' file.txt
输出:
apple orange
apple orange
在这个例子中,使用逗号作为分隔符。
  1. OFS(Output Field Separator,输出字段分隔符)
    OFS 是指定输出字段的分隔符,默认是空格。你可以在脚本中定义它。

示例:

apple orange banana
apple orange
命令:
awk 'BEGIN {OFS="-"} {print $1, $2, $3}' file.txt
输出:
apple-orange-banana
apple-orange-
注意,输出的字段之间用 - 分隔。
  1. FNR(File Number of Records)
    FNR 是每个文件中记录的行号。与 NR 不同,FNR 在处理多个文件时,每个文件从1开始计数。

示例:

file1.txt:
apple
bananafile2.txt:
cherry
date
命令:
awk '{print FNR, $0}' file1.txt file2.txt
输出:
1 apple
2 banana
1 cherry
2 date
FNR 在每个文件中独立计数。
  1. RS(Record Separator,输入记录分隔符)
    RS 是输入记录的分隔符,默认是换行符。你可以将其设置为其他字符,使 awk 按照指定的字符分隔记录。

示例:

apple banana;orange cherry;grape lemon
命令:
awk 'BEGIN {RS=";"} {print NR, $0}' file.txt
输出:
1 apple banana
2 orange cherry
3 grape lemon
此例中,RS 被设置为分号 ;,将记录分隔为3部分。
  1. ORS(Output Record Separator,输出记录分隔符)
    ORS 是输出记录的分隔符,默认是换行符。

示例:

apple orange
banana cherry
命令:
awk 'BEGIN {ORS=";"} {print $1, $2}' file.txt
输出:
apple orange;banana cherry;
ORS 被设置为分号 ;,所以每个记录的输出以 ; 结尾。
  1. NF(Number of Fields)
    NF 表示每行的字段数(列数),通常用于循环或者判断当前行有多少个字段。

示例:

apple orange banana
apple orange
命令:
awk '{print NF}' file.txt
输出:
3
2

这篇关于awk_常用参数汇总的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1142902

相关文章

HarmonyOS学习(七)——UI(五)常用布局总结

自适应布局 1.1、线性布局(LinearLayout) 通过线性容器Row和Column实现线性布局。Column容器内的子组件按照垂直方向排列,Row组件中的子组件按照水平方向排列。 属性说明space通过space参数设置主轴上子组件的间距,达到各子组件在排列上的等间距效果alignItems设置子组件在交叉轴上的对齐方式,且在各类尺寸屏幕上表现一致,其中交叉轴为垂直时,取值为Vert

JS常用组件收集

收集了一些平时遇到的前端比较优秀的组件,方便以后开发的时候查找!!! 函数工具: Lodash 页面固定: stickUp、jQuery.Pin 轮播: unslider、swiper 开关: switch 复选框: icheck 气泡: grumble 隐藏元素: Headroom

Andrej Karpathy最新采访:认知核心模型10亿参数就够了,AI会打破教育不公的僵局

夕小瑶科技说 原创  作者 | 海野 AI圈子的红人,AI大神Andrej Karpathy,曾是OpenAI联合创始人之一,特斯拉AI总监。上一次的动态是官宣创办一家名为 Eureka Labs 的人工智能+教育公司 ,宣布将长期致力于AI原生教育。 近日,Andrej Karpathy接受了No Priors(投资博客)的采访,与硅谷知名投资人 Sara Guo 和 Elad G

C++11第三弹:lambda表达式 | 新的类功能 | 模板的可变参数

🌈个人主页: 南桥几晴秋 🌈C++专栏: 南桥谈C++ 🌈C语言专栏: C语言学习系列 🌈Linux学习专栏: 南桥谈Linux 🌈数据结构学习专栏: 数据结构杂谈 🌈数据库学习专栏: 南桥谈MySQL 🌈Qt学习专栏: 南桥谈Qt 🌈菜鸡代码练习: 练习随想记录 🌈git学习: 南桥谈Git 🌈🌈🌈🌈🌈🌈🌈🌈🌈🌈🌈🌈🌈�

【C++】_list常用方法解析及模拟实现

相信自己的力量,只要对自己始终保持信心,尽自己最大努力去完成任何事,就算事情最终结果是失败了,努力了也不留遗憾。💓💓💓 目录   ✨说在前面 🍋知识点一:什么是list? •🌰1.list的定义 •🌰2.list的基本特性 •🌰3.常用接口介绍 🍋知识点二:list常用接口 •🌰1.默认成员函数 🔥构造函数(⭐) 🔥析构函数 •🌰2.list对象

如何在页面调用utility bar并传递参数至lwc组件

1.在app的utility item中添加lwc组件: 2.调用utility bar api的方式有两种: 方法一,通过lwc调用: import {LightningElement,api ,wire } from 'lwc';import { publish, MessageContext } from 'lightning/messageService';import Ca

常用的jdk下载地址

jdk下载地址 安装方式可以看之前的博客: mac安装jdk oracle 版本:https://www.oracle.com/java/technologies/downloads/ Eclipse Temurin版本:https://adoptium.net/zh-CN/temurin/releases/ 阿里版本: github:https://github.com/

30常用 Maven 命令

Maven 是一个强大的项目管理和构建工具,它广泛用于 Java 项目的依赖管理、构建流程和插件集成。Maven 的命令行工具提供了大量的命令来帮助开发人员管理项目的生命周期、依赖和插件。以下是 常用 Maven 命令的使用场景及其详细解释。 1. mvn clean 使用场景:清理项目的生成目录,通常用于删除项目中自动生成的文件(如 target/ 目录)。共性规律:清理操作

4B参数秒杀GPT-3.5:MiniCPM 3.0惊艳登场!

​ 面壁智能 在 AI 的世界里,总有那么几个时刻让人惊叹不已。面壁智能推出的 MiniCPM 3.0,这个仅有4B参数的"小钢炮",正在以惊人的实力挑战着 GPT-3.5 这个曾经的AI巨人。 MiniCPM 3.0 MiniCPM 3.0 MiniCPM 3.0 目前的主要功能有: 长上下文功能:原生支持 32k 上下文长度,性能完美。我们引入了

AI(文生语音)-TTS 技术线路探索学习:从拼接式参数化方法到Tacotron端到端输出

AI(文生语音)-TTS 技术线路探索学习:从拼接式参数化方法到Tacotron端到端输出 在数字化时代,文本到语音(Text-to-Speech, TTS)技术已成为人机交互的关键桥梁,无论是为视障人士提供辅助阅读,还是为智能助手注入声音的灵魂,TTS 技术都扮演着至关重要的角色。从最初的拼接式方法到参数化技术,再到现今的深度学习解决方案,TTS 技术经历了一段长足的进步。这篇文章将带您穿越时