awk变量

awk变量一、awk字段变量变量名属性$0当前记录$1~$n当前记录的第n个字段二、awk内置变量变量名属性FS输入字段分割符,默认是空格RS输入记录分割符,默认是换行符NR已经读处的记录数,就是行号,从1开始NF当前记录的字段个数,就…


Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

一、awk字段变量

变量名       属性
$0          当前记录
$1~$n       当前记录的第n个字段


二、awk内置变量

变量名       属性
FS          输入字段分割符,默认是空格   
RS          输入记录分割符,默认是换行符
NR          已经读处的记录数,就是行号,从1开始
NF          当前记录的字段个数,就是有多少列
OFS         输出字段分割符,默认是空格
ORS         输出记录分割符,默认是换行符

三、实例一:详细介绍字段变量与内置变量

[root@iZwz9bhan5nqzh979qokrkZ ~]# cat a.txt 
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
adm:x:3:4:adm:/var/adm:/sbin/nologin
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin

字段变量: $0,$1...$n
[root@iZwz9bhan5nqzh979qokrkZ ~]# cat a.txt | awk '/root/{print $0}'
root:x:0:0:root:/root:/bin/bash
注:$0便是打印包含root的行的内容,记录一般是指行的内容。

内置变量:NR,NF,FS,RS

1.内置变量之FS:字段分割符
[root@iZwz9bhan5nqzh979qokrkZ ~]# cat a.txt | awk 'BEGIN{FS=":"}{print $1,$3}' | column  -t
root    0
bin     1
daemon  2
adm     3
lp      4
注:FS:--field-separator 字段分割符,column -t表示将内容整齐呈现。

2.内置变量之NR:记录行号
[root@iZwz9bhan5nqzh979qokrkZ ~]# cat a.txt | awk 'BEGIN{FS=":"}{print NR,$1,$7}' | column  -t
1  root    /bin/bash
2  bin     /sbin/nologin
3  daemon  /sbin/nologin
4  adm     /sbin/nologin
5  lp      /sbin/nologin
注:NR:number record 记录行号,column -t表示将内容整齐呈现。

3.内置变量之NF及$NF:记录字段数量
[root@iZwz9bhan5nqzh979qokrkZ ~]# cat a.txt | awk -F ":" '{print NR,NF,$0}' | column -t
1  7  root:x:0:0:root:/root:/bin/bash
2  7  bin:x:1:1:bin:/bin:/sbin/nologin
3  7  daemon:x:2:2:daemon:/sbin:/sbin/nologin
4  7  adm:x:3:4:adm:/var/adm:/sbin/nologin
5  7  lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
注:NF:number field 字段的数量,NF表示记录每一行的字段数量,NR记录行号,表示第几行,$0表示整行的内容

[root@iZwz9bhan5nqzh979qokrkZ ~]# cat a.txt | awk -F ":" '{print NR,$NF}' | column -t
1  /bin/bash
2  /sbin/nologin
3  /sbin/nologin
4  /sbin/nologin
5  /sbin/nologin

[root@iZwz9bhan5nqzh979qokrkZ ~]# cat a.txt | awk -F ":" '{print NR,$(NF-1)}'
1 /root
2 /bin
3 /sbin
4 /var/adm
5 /var/spool/lpd

注:$NF:表示当前行的最后一个字段,$(NF-1):表示当前行的倒数第二个字段,$(NF-2):表示当前行的倒数第三个字段,一次类推。

4.内置变量之RS
[root@iZwz9bhan5nqzh979qokrkZ ~]# cat a.txt | awk 'BEGIN{RS="/"}{print NR,$0}' 
1 root:x:0:0:root:
2 root:
3 bin
4 bash
bin:x:1:1:bin:
5 bin:
6 sbin
7 nologin
daemon:x:2:2:daemon:
8 sbin:
9 sbin
10 nologin
adm:x:3:4:adm:
11 var
12 adm:
13 sbin
14 nologin
lp:x:4:7:lp:
15 var
16 spool
17 lpd:
18 sbin
19 nologin
注:RS:record separator 记录分割符,就是以内容进行分割。

总结:OFS和ORS基本上不是很常用,所以我就不一一演示了,如果想持续关注,可以自己去查阅相关资料总结即可!
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/157639.html原文链接:https://javaforall.net

赞 (0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • java WebSocket客户端断线重连 | 实用代码框架「建议收藏」

    java WebSocket客户端断线重连 | 实用代码框架「建议收藏」在工作中是否会遇到实用websocket客户端连接服务端的时候,网络波动,服务端断连的情况。会导致客户端被动断开连接。为了解决这个问题,需要对被动断开连接的情况进行捕获,并重新创建连接。这篇文章主要是提供可以直接使用的断线重连websocket客户端代码。

    2022年7月11日
  • 系统数据库的概念结构,逻辑结构,物理结构设计方法_数据库的物理独立性是指

    系统数据库的概念结构,逻辑结构,物理结构设计方法_数据库的物理独立性是指由于自己在写这一部分的报告时,总感觉不能很好地理解概念含义,具体的设计目标也不知道用怎样的形式来表达。在做完相关报告之后,想着把老师指导之后改正的作业展示一下,希望可以给有类似问题的小伙伴一点点帮助。系统的概念数据库设计将需求分析得到的用户需求抽象为信息结构(即概念模型)的过程就是概念结构设计,最后生成的模型是E-R图。注:1、先写局部E-R图,再写整体的E-R图2、若所设计系统的实体、属性与联系很多,绘制出来的总E-R图过于复杂、不清晰,可以将整体的E-R图分解成实体-属性图和实体-联系图。其

    2022年10月11日
  • pycharm激活码2021年(JetBrains全家桶)「建议收藏」

    (pycharm激活码2021年)2021最新分享一个能用的的激活码出来,希望能帮到需要激活的朋友。目前这个是能用的,但是用的人多了之后也会失效,会不定时更新的,大家持续关注此网站~https://javaforall.net/100143.htmlIntelliJ2021最新激活注册码,破解教程可免费永久激活,亲测有效,上面是详细链接哦~S3…

    2022年3月26日
  • 如何打开sln文件并显示窗口_在本机打开别人的sln文件[通俗易懂]

    如何打开sln文件并显示窗口_在本机打开别人的sln文件[通俗易懂]sln:在开发环境中使用的解决方案文件。它将一个或多个项目的所有元素组织到单个的解决方案中。此文件存储在父项目目录中.解决方案文件,他是一个或多个.proj(项目)的集合呵呵,今天没带书,就去网上找了个ASP.NET的源代码,叫简单实用的BLOG,一开始在web.config里捣鼓了半天,终于能把程序运行起来了,一看是MVP刘巍~真是意外啊。去看了看他的博客,言及两年来如何如何,及参加会议云云,想…

    2022年6月12日
  • mac安装mysql中设置密码遇到的问题和设置快捷命令打开mysql

    mac安装mysql中设置密码遇到的问题和设置快捷命令打开mysql

    2021年9月12日
  • 一年多的前后(2019vs2020)对比「建议收藏」

    一年多的前后(2019vs2020)对比「建议收藏」不知不觉,又到了这个躁动不安的季节,躁动的是应届毕业生毕业以及高考。关于对青春的情愫,通常在这种时刻都会有各种各样的故事,当然了,我并不是一个会讲故事的人,所以通常情况下,就采用这种总结性的方式写文字

    2022年8月6日

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号