首页 > 其他分享 >AWK - 内置变量

AWK - 内置变量

时间:2023-08-28 18:12:21浏览次数:32  
标签:tmp 2288H 内置 变量 --- AWK V6 txt root

内置变量

内置变量 使用说明
NF 获取文件的每行字段数,默认按照空格区分字段。
NR 获取文件行数,空白行对应行号默认不显示。
FNR 读取单个文件,效果同NR。读取多个文件,当读到新文件,FNR方式获取的行号重新从1开始,NR延续上个文件的行号。
FS 输入字段分隔符,默认是空格。
OFS 输出字段分隔符,默认是空格。
RS 输入行分隔符,默认为换行符
ORS 输出行分隔符,默认为换行符

例子

1、NF(获取行字段)

1)获取文档每行的字段数

[root@2288H-V6 tmp]# #以nowcoder.txt作为演示文本
[root@2288H-V6 tmp]# cat nowcoder.txt
job salary
c++ 13
java 14
php 12
python 34
[root@2288H-V6 tmp]#
[root@2288H-V6 tmp]# #NF,获取nowcoder.txt每行的字段数,行字段默认空格分隔。
[root@2288H-V6 tmp]# awk '{print NF}' nowcoder.txt
2
2
2
2
2

2)输出文档的第n个字段内容

[root@2288H-V6 tmp]# awk '{print "第一列:",$1,"第二列:",$2,"最后一列:",$NF}' nowcoder.txt | column -t
第一列:  job     第二列:  salary  最后一列:  salary
第一列:  c++     第二列:  13      最后一列:  13
第一列:  java    第二列:  14      最后一列:  14
第一列:  php     第二列:  12      最后一列:  12
第一列:  python  第二列:  34      最后一列:  34

2、NR(行号输出)

1)获取文档行号

[root@2288H-V6 tmp]# #NR,获取文档的行号
[root@2288H-V6 tmp]# awk '{print NR}' nowcoder.txt
1
2
3
4
5

2)文档带行号输出

[root@2288H-V6 tmp]# awk '{print NR " " $0}' nowcoder.txt
1 job salary
2 c++ 13
3 java 14
4 php 12
5 python 34

3、FNR(行号输出)

对比FNR和NR对多个文件的输出。

[root@2288H-V6 tmp]# awk 'BEGIN{OFS="~~~"}{print FNR,NR}' nowcoder.txt file.txt
1~~~1
2~~~2
3~~~3
4~~~4
5~~~5
1~~~6
2~~~7
3~~~8
4~~~9
5~~~10
6~~~11
7~~~12

4、FS(输入字段分隔符)

[root@2288H-V6 tmp]# #FS,输入字段分隔符
[root@2288H-V6 tmp]# awk 'BEGIN{FS="1"}{print "输出第一个字段:" $1}' nowcoder.txt
输出第一个字段:job salary
输出第一个字段:c++
输出第一个字段:java
输出第一个字段:php
输出第一个字段:python 34
[root@2288H-V6 tmp]# #等价于下列写法
[root@2288H-V6 tmp]# awk -F"1" '{print $1}' nowcoder.txt
job salary
c++
java
php
python 34

5、OFS(输出字段分隔符)

[root@2288H-V6 tmp]# awk 'BEGIN{OFS="---"}{print $1,$2}' nowcoder.txt
job---salary
c++---13
java---14
php---12
python---34

6、RS(输入行分隔符)

[root@2288H-V6 tmp]# cat nowcoder.txt
job salary
c++ 13
java 14
php 12
python 34
[root@2288H-V6 tmp]# awk '{RS=" "}{print $0}' nowcoder.txt
job salary
c++
13
java
14
php
12
python
34

[root@2288H-V6 tmp]#

7、ORS(输出行分隔符)

[root@2288H-V6 tmp]# awk '{ORS="---行分隔符---"}{print $0}' nowcoder.txt
job salary---行分隔符---c++ 13---行分隔符---java 14---行分隔符---php 12---行分隔符---python 34---行分隔符---[root@2288H-V6 tmp]#

标签:tmp,2288H,内置,变量,---,AWK,V6,txt,root
From: https://www.cnblogs.com/hsh96/p/17663060.html

相关文章

  • Maven的安装与环境变量的配置
    Maven的安装与环境变量的配置1、下载安装maven2、配置环境变量在系统环境变量中加入MAVEN_HOME这个的路径就是maven的安装路径M2_HOME这个是maven目录下的bin目录中还要再path路径下配置:%MAVEN_HOME%\bin3、阿里云镜像的配置因为国内有墙,所以要使用aliyu......
  • 实用指令_大数据shell_变量_设置位置参数
    位置参数当我们执行一个shell脚本时,如果希望获取命令行的参数信息,就可以使用位置参数变量比如:/myshell.sh100200,这个就是一个执行shell的命令行,可以在myshell脚本中获取到参数信息基本语法$n(功能描述:n为数字,$0代表命令本身,$1-$9代表第一到第九个参数,十以上的参数,需......
  • 实用指令_大数据shell_变量_预定义变量
    预定义变量就是shell设计者事先已经定义好的变量,可以直接在shell脚本中使用基本语法$$(功能描述;当前进程的进程号)$!(功能描述:后台运行的最后一个进程号)$?(功能描述:最后一次执行的命令的返回状态,如果这个变量的值为0,证明上一个命令正确执行;如果这个命令的值非0(具体是哪......
  • 实用指令_大数据shell_设置环境变量
    设置环境变量基本语法export变量名=变量值(功能描述:将shell变量输出为环境变量)source配置文件(功能描述:将修改后的配置信息立即生效)echo$变量名(功能描述:查询环境变量的值)快速入门案例在/etc/profile文件中定义TOMCAT_H......
  • flutter使用腾讯IM插件tencent_cloud_chat_sdk打安卓报“从内部类中访问本地变量param
    使用tencent_cloud_chat_sdk5.2.0版本打包安卓flutterbuildapk报以下错误/Users/tanglin/Documents/flutter/.pub-cache/hosted/pub.flutter-io.cn/tencent_cloud_chat_sdk-5.2.0/android/src/main/java/com/qq/qcloud/tencent_im_sdk_plugin/util/CommonUtil.java:401:错误:......
  • 在 PHP 中,原生并没有提供内置的定时器机制,定时触发的守护进程,其中一个常见的方式是使
    <?phpclassTimerDaemon{private$logfile;private$fp;private$triggerInterval;//触发间隔,以秒为单位private$lastTriggerTime;publicfunction__construct($logfile,$triggerInterval){$this->logfile=$logfile;......
  • 环境变量
    如何改变环境变量打开控制面板进行编辑......
  • Adobe Lightroom Classic 2023内置激活版
    AdobeLightroomClassic2023内置激活版是Adobe公司开发的一款图片后期处理软件,也是史上首个专为专业摄影师和摄影爱好者提供了全套照片服务的应用程序,很适合摄影师拍摄照片的后期制作,面向数码摄影、图形设计等专业人士和高端用户,支持各种RAW图像,主要用于数码相片的浏览、编辑、整......
  • JavaScript的变量提升
    参考资料:https://time.geekbang.org/column/article/126339目录变量提升变量形式声明的函数变量提升导致的问题变量被覆盖变量不被销毁避开变量提升引入let和const关键字块级作用域变量提升是在代码执行时,把变量和函数的声明部分提升到代码开头的行为,变量被提升后,会被默认设置......
  • 两种不同的方法来检查Python中的变量是否是字符串
    在Python中,每个变量都有一个数据类型。数据类型表示一个变量内部存储的是哪种数据。数据类型是编程语言最重要的特征,它区分了我们可以存储的不同类型的数据,如字符串、int和float。在处理许多编程问题时,可能会遇到这样的情况:我们需要找到某个变量的数据类型来对其执行一些任务。......