当前位置: 首页 > news >正文

Shell三剑客:awk(内部变量)

一、$0 :完整的输入记录

[root@localhost ~]# awk -F: '{print $0}' passwd.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
sync:x:5:0:sync:/sbin:/bin/sync
shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
halt:x:7:0:halt:/sbin:/sbin/halt
mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
operator:x:11:0:operator:/root:/sbin/nologin10

 

二、ARGC :命令行参数的数目

[root@localhost ~]# awk 'BEGIN {print ARGC}' passwd.txt 
2

 

三、ARGIND :命令行中当前文件的位置(从0开始算)

[root@localhost ~]# awk 'BEGIN {print ARGIND}' passwd.txt 
0

 

四、ARGV :包含命令行参数的数组

[root@localhost ~]# awk 'BEGIN {print ARGV[0]}' passwd.txt 
awk
[root@localhost ~]# awk 'BEGIN {print ARGV[1]}' passwd.txt 
passwd.txt

 

五、CONVFMT :数字转换格式(默认值为%.6g)ENVIRON环境变量关联数组

[root@localhost ~]# awk 'BEGIN {print CONVFMT}' passwd.txt 
%.6g

 

 六、FILENAME:当前文件名

[root@localhost ~]# awk '{print FILENAME}' passwd.txt 
passwd.txt
passwd.txt
passwd.txt
passwd.txt
passwd.txt
passwd.txt
passwd.txt
passwd.txt
passwd.txt
passwd.txt

 

七、FNR :各文件分别计数的行号

[root@localhost ~]# awk -F: '{print FNR,$0}' passwd.txt /etc/hosts
1 root:x:0:0:root:/root:/bin/bash
2 bin:x:1:1:bin:/bin:/sbin/nologin
3 daemon:x:2:2:daemon:/sbin:/sbin/nologin
4 adm:x:3:4:adm:/var/adm:/sbin/nologin
5 lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
6 sync:x:5:0:sync:/sbin:/bin/sync
7 shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
8 halt:x:7:0:halt:/sbin:/sbin/halt
9 mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
10 operator:x:11:0:operator:/root:/sbin/nologin10
1 127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
2 ::1         localhost localhost.localdomain localhost6 localhost6.localdomain6

 

八、FS :字段分隔符(默认是任何空格)

[root@localhost ~]# awk -F'[:\t]' '{print $1,$2,$3}' passwd.txt
root x 0
bin x 1
daemon x 2
adm x 3
lp x 4
sync x 5
shutdown x 6
halt x 7
mail x 8
operator x 11

 

九、IGNORECASE:如果为真,则进行忽略大小写的匹配

[root@localhost ~]# awk -F: '{print IGNORECASE}' passwd.txt 
0
0
0
0
0
0
0
0
0
0

 

 十、NF :一条记录的字段的数目

[root@localhost ~]# awk -F: '{print $0,NF}' passwd.txt
root:x:0:0:root:/root:/bin/bash 7
bin:x:1:1:bin:/bin:/sbin/nologin 7
daemon:x:2:2:daemon:/sbin:/sbin/nologin 7
adm:x:3:4:adm:/var/adm:/sbin/nologin 7
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin 7
sync:x:5:0:sync:/sbin:/bin/sync 7
shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown 7
halt:x:7:0:halt:/sbin:/sbin/halt 7
mail:x:8:12:mail:/var/spool/mail:/sbin/nologin 7
operator:x:11:0:operator:/root:/sbin/nologin10 7

 

十一、NR :已经读出的记录数,就是行号,从1开始

[root@localhost ~]# awk -F: '{print NR,$0}' passwd.txt /etc/hosts
1 root:x:0:0:root:/root:/bin/bash
2 bin:x:1:1:bin:/bin:/sbin/nologin
3 daemon:x:2:2:daemon:/sbin:/sbin/nologin
4 adm:x:3:4:adm:/var/adm:/sbin/nologin
5 lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
6 sync:x:5:0:sync:/sbin:/bin/sync
7 shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
8 halt:x:7:0:halt:/sbin:/sbin/halt
9 mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
10 operator:x:11:0:operator:/root:/sbin/nologin10
11 127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
12 ::1         localhost localhost.localdomain localhost6 localhost6.localdomain6

 

十二、OFMT:数字的输出格式(默认值是%.6g)

[root@localhost ~]# awk -F: '{print OFMT}' passwd.txt 
%.6g
%.6g
%.6g
%.6g
%.6g
%.6g
%.6g
%.6g
%.6g
%.6g

 

十三、OFS :输出记录分隔符(输出换行符),输出时用指定的符号代替换行符

[root@localhost ~]# awk -F: '/root/{print $1,$2,$3,$4}' passwd.txt 
root x 0 0
operator x 11 0

 

十四、RLENGTH:由match函数所匹配的字符串的长度

[root@localhost ~]# awk '{print RLENGTH}' passwd.txt 
0
0
0
0
0
0
0
0
0
0

 

 十五、ORS :输出记录分隔符(默认值是一个换行符)

[root@localhost ~]# awk -F: 'BEGIN{ORS=""} {print $0}' passwd.txt 
root:x:0:0:root:/root:/bin/bashbin:x:1:1:bin:/bin:/sbin/nologindaemon:x:2:2:daemon:/sbin:/sbin/nologinadm:x:3:4:adm:/var/adm:/sbin/nologinlp:x:4:7:lp:/var/spool/lpd:/sbin/nologinsync:x:5:0:sync:/sbin:/bin/syncshutdown:x:6:0:shutdown:/sbin:/sbin/shutdownhalt:x:7:0:halt:/sbin:/sbin/haltmail:x:8:12:mail:/var/spool/mail:/sbin/nologinoperator:x:11:0:operator:/root:/sbin/nologin10

 

十六、RS :记录分隔符(默认是一个换行符)

[root@localhost ~]# awk  'BEGIN{RS=":"} {print $0}' passwd1.txt
root
x
0
0
root
/root
/bin/bash[root@localhost ~]# awk -F: 'BEGIN{RS=""} {print $0}' passwd.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
sync:x:5:0:sync:/sbin:/bin/sync
shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
halt:x:7:0:halt:/sbin:/sbin/halt
mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
operator:x:11:0:operator:/root:/sbin/nologin10

 

 

http://www.lryc.cn/news/264663.html

相关文章:

  • JVM中的虚拟机栈的动态链接部分存放到底是什么
  • Leetcode 55 跳跃游戏
  • 构建陪诊预约系统:技术实战指南
  • windows和linux将文件删除至回收站【C++】【Go】语言实现
  • 10 Vue3中v-html指令的用法
  • 华为数通方向HCIP-DataCom H12-831题库(多选题:181-200)
  • DC-磁盘管理
  • 使用Docker运行镜像文件与设置端口
  • Centos 8.5 Oracle12c安装
  • Apache Tomcat httpoxy 安全漏洞 CVE-2016-5388 已亲自复现
  • ChatGLM3-6B 的调用参数说明,chat 与stream_chat 接口函数的参数说明
  • Vuex的学习-2
  • 智慧安防视频监控EasyCVR如何通过回调接口向第三方平台推送RTSP视频通道离线通知
  • Scrum项目管理流程及免费敏捷工具
  • 大型医院PACS系统源码,影像存储与传输系统源码,支持多种图像处理及三维重建功能
  • HDFS NFS Gateway(环境配置,超级详细!!)
  • nginx 离线安装 https反向代理
  • Linux Centos 配置 Docker 国内镜像加速
  • 中心下标-----来自力扣
  • 手写单链表(指针)(next域)附图
  • 关于with torch.no_grad:的一些小问题
  • 大创项目推荐 深度学习 机器视觉 人脸识别系统 - opencv python
  • 【PostGIS】空间数据库-常用空间函数
  • 程序员的50大JVM面试问题及答案
  • 架构设计系列之前端架构和后端架构的区别和联系
  • UE5 水材质注意要点
  • 数据安全扫描仪荣膺网络安全优秀创新成果大赛优胜奖 - 凸显多重优势
  • 数据结构学习 leetcode64最小路径和
  • 导出(导入)Linux虚拟机并修改IP地址
  • OpenCV4工业缺陷检测的六种方法