首页 > awk3.0 — awk变量

awk3.0 — awk变量

awk有一些内置变量和外置变量,内置变量就是awk自带的变量,用户可以拿来直接使用,如FS,OFS等

awk常用内置变量如下几种:

FS:输入单词分隔符,默认是空格          
OFS:输出单词分隔符,默认是空格
RS:指定输入时候的换行符(awk是一行行处理数据的) 
ORS:指定输出的符号,替代换行符(awk以换行符区别一条数据) 
NF:一条数据单词的个数,常用来输出最后一个单词  
NR:处理当前文本行的行号    
FNR:各文件分别记录的行号,awk处理多个文件时候,显示多个文件的行号   
FILENAME:当前文件名    
ARGC:命令行参数的个数  
ARGV:数组,保存的是命令行所给定的各参数

内置变量(个别示例)

  1. FNR 同时显示多个文件的当前行的行号

    image
  2. RS 替换输入换行符

    awk默认是使用换行符,一次读取一条记录,然后再以空格分割单词进行数据处理的,如果我们想要让awk以其他的符号,比如说空格表示换行符,从而让他区别一条记录,就可以使用RS变量

    image

  3. ORS 替换输出换行符

    有了RS的基础,ORS就很好理解了

  4. ARGV和ARGC

    ARGV表示的是一个数组,数组保存了保存了命令行的参数,数组有些特殊,下标是从0开始,只不过ARGV[0]表示的就是awk

awk 'BEGIN{print ARGV[1]}' test1 test2

自定义变量

方法一:-v xxx=”xxx”

方法二:在program中定义

awk -v test="hello worl" 'BEGIN{print test}'
awk 'BEGIN{test="hello world";print test}'  //中间用分号隔开

更多相关:

  • 在运维过程中,发现portal中出现流量异常曲线, 就从排查ATS的访问日志中的异常域名开始,下面是我截获的对应时段的访问日志截图 发现里面有502,403等异常响应,我们将这段访问日志文件记为exception_peak.log。采用下面的命令来过滤出502的访问记录,并剥离出对应的访问链接的host,统计指定时段中...

  • 文章目录awk和sed的区别awk脚本的流程控制awk 记录和字段字段的引用awk表达式赋值操作符算数操作符系统变量(awk本身自定义的系统变量)关系操作符布尔操作符awk 条件和循环条件语句循环awk 的数组数组的定义数组的遍历删除数组举例,编写awk脚本文件`avg.awk`命令行参数数组复杂数组的使用案例awk函数算数函数字符...

  • 变量传递 外部变量传入 lsblk|awk -v A=$A -v B=$B '{print A,B}'lsblk | awk '{print A,B}' A=$A B=$B 内部变量传出 eval $(lsblk|awk '{print "A='$1'"}')eval $(lsblk|awk 'printf("A=%s ",$1)...

  • awk的语法 awk [options] ‘Pattern {Actions}’ file1,file2… 之前介绍了三种模式:空模式,关系运算模式,BEGIN/END模式 正则模式 模式可以理解成条件,正则模式就是满足正则表达式条件的,就执行相应的动作,否则不执行。 如果我们想要找到在/etc/passwd文件中,...

  • 多线程编程 mind-Mapping保存有一下导图的xmind文件,可直接获取 互斥变量 互斥对象 ptrhead相关接口 条件变量 future异步访问类 async类 promise类 package_task类...

  • 我们在实际开发的过程中,可能需要某些类的成员变量并不是针对每一个对象的,而是针对每一个类而言的,比如在银行中有一个利率数据,我们希望的是,当一个利率改变的时候,所有的对象都能够看到这个改变的数据,并利用它,而不是每一个对象都有一个利率成员变量。这个时候就设计到了静态成员变量。 一. 内存那些事 静态成员变量是存放在静态...

  • volatile提醒编译器它后面所定义的变量随时都有可能改变,因此编译后的程序每次需要存储或读取这个变量的时候,都会直接从变量地址中读取数据。如果没有volatile关键字,则编译器可能优化读取和存储,可能暂时使用寄存器中的值,如果这个变量由别的程序更新了的话,将出现不一致的现象。下面举例说明。在DSP开发中,经常需要等待某个事件的触...

  •   引子     阅读以下代码,并尝试分析 代码解析 在主线程中,线程Id为1,为线程变量赋值 变量==d6ff开启一个新的task,此时线程Id为4,变量==d6ff,并调用Task1开启一个同步Task3,线程Id为1。变量==d6ff,修改值==f598此时第二步启动的Task1运行,线程Id为4,变量==d6ff,修改值=...

  • 操作系统基础    操作系统是协调、控制、管理计算机硬件资源与软件资源的控制程序 为什么要用操作系统?    1.操作系统可以把复杂的操作简化给用户使用或者应用程序  2.可以让应用程序对计算机硬件竞争变的有序  一套完整的计算机分为:操作系统、应用程序、计算机硬件 编程语言的分类   机械语言:使用二进制让计算机工作   优点:运行...