awk变量

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

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • Android视频直播的实现(包括服务器搭建)

    Android视频直播的实现(包括服务器搭建)最近一段时间,视频直播可谓大火。在视频直播领域,有不同的商家提供各种的商业解决方案,包括软硬件设备,摄像机,编码器,流媒体服务器等。本文要讲解的是如何使用一系列免费工具,打造一套视频直播方案。视频直播流程视频直播的流程可以分为如下几步:采集—>处理—>编码和封装—>推流到服务器—>服务器流分发—>播放器流播放1.采集采集是整个视频推流过…

    2022年6月3日
    57
  • matlab求解不定方程组_matlab解参数方程组

    matlab求解不定方程组_matlab解参数方程组最想说的一句话:要查matlab用法,一定要到官网去查,一些用法matlab官方是在不断更新的,现存的一些办法已经无法解决问题使用的是solve这个函数它拥有解决优化问题,解方程的功能,下面我将举一些常用的例子文章目录一、解单变量方程二、解多变量方程三、解带参数方程四、解不等式知识点总结一、解单变量方程题目:求解方程2x+1=0 2x+1=02x+1=0symsx…

    2022年9月14日
    0
  • docker 搭建drone + gitee 的CI/CD

    docker 搭建drone + gitee 的CI/CD准备创建OAuth应用程序创建一个GiteeOAuth应用程序。ConsumerKey和ConsumerSecret用于授权访问Gitee资源。授权回调URL必须与以下格式和路径匹配,并且必须使用您的确切服务器方案和主机。创建共享密钥创建一个共享密钥来验证跑步者和您的中央无人机服务器之间的通信。您可以使用openssl生成共享密钥:$opensslrand-hex16bea26a2221fd8090ea38720fc445ec.

    2022年8月15日
    15
  • arm和mips架构区别_arm架构详解

    arm和mips架构区别_arm架构详解ARM体系1、历史1978年12月5日,物理学家赫尔曼·豪泽(HermannHauser)和工程师ChrisCurry,在英国剑桥创办了CPU公司(CambridgeProcessingUnit),主要业务是为当地市场供应电子设备。…

    2022年10月14日
    0
  • 向用户、竞争对手学习,是360的微创新之源 ( 转发自周鸿祎博客 )

    向用户、竞争对手学习,是360的微创新之源 ( 转发自周鸿祎博客 )写道现在,我说一说360的微创新,这是我这么多年来做互联网产品的一个总结,对我来说是方法论,希望能跟朋友们分享,切磋。我记得比尔-盖茨有一句话,大意是他愿意为微软一直服务下去,因为他喜欢跟一群聪明人打交道。跟聪明人在一起交流是快乐的,大家都是聪明人,大拿不少,即使拍砖也能拍出水平。闲话少叙,言归正传。但提前说明一下,这篇博文牵涉到一些产品功能,不感兴趣的同志可以掠过。2008年7月

    2022年7月26日
    6
  • pycharm配置Python环境_手机虚拟环境怎么设置

    pycharm配置Python环境_手机虚拟环境怎么设置问题由来从github下载的模型程序,所适包的版本不同,导致Pycharm中包混乱、版本冲突。 为每个程序单独创建虚拟环境,使得特定程序只能访问虚拟环境中的包,从而保持全局解释器的干净整洁。创建虚拟环境File-Settings-PythonInterpreter-设置图标,后续设置如下:Pycharm之创建虚拟环境在特定虚拟环境中安装包1、选择下方Terminal2、利用cd进入项目的Scripts文件夹3、输入activate4、利用pip命…

    2022年8月26日
    7

发表回复

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

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