awk、变量、运算符、if多分支

awk

语法
awk [options] 'commands' files
option
-F 定义字段分隔符,默认的分隔符是连续的空格或制表符
使用option中的-F参数定义间隔符号
用$1,$2,$3等的顺序表示files中每行以间隔符号分隔的各列不同域
NF变量表示当前记录的字段数
-v 定义变量并赋值 也可以借用次方式从shell变量中引入

NR变量定址:

NR 表示AWK读入的行数
FNR表示读入行所在文件中的行数
# awk '{print NR,FNR,$1}' file1 file2 
1 1 aaaaa
2 2 bbbbb
3 3 ccccc
4 1 dddddd
5 2 eeeeee
6 3 ffffff

逻辑运算 可直接引用域进行运算
== >= <= != > < ~ !~
# awk 'NR==1 {print}' /etc/passwd
root:x:0:0:root:/root:/bin/bash

3.命令 {print $0}
4.读后处理 END {awk_cmd1;awk_cmd2;}

NR 表示AWK读入的行数:
FNR表示读入行所在文件中的行数
# awk '{print NR,FNR,$1}' file1 file2 
1 1 aaaaa
2 2 bbbbb
3 3 ccccc
4 1 dddddd
5 2 eeeeee
6 3 ffffff
#
逻辑运算 可直接引用域进行运算
== >= <= != > < ~ !~
# awk 'NR==1 {print}' /etc/passwd
root:x:0:0:root:/root:/bin/bash

3.命令 {print $0}
4.读后处理 END {awk_cmd1;awk_cmd2;}

引用shell变量的方法:

# a=root
# awk -v var=$a -F: '$1 == var {print $0}' /etc/passwd
或者 把整个命令拆开传递,让shell变量外露,
# awk -F: '$1 == "'$a'" {print $0}' /etc/passwd
# a=NF
# awk -F: '{print $'$a'}' /etc/passwd

 

操作符:

赋值
= += -= /= *=

逻辑与 逻辑或 逻辑非
&& || !
匹配正则或不匹配,正则需要用 /正则/ 包围住
~ !~
关系 比较字符串时要把字符串用双引号引起来
< <= > >= != ==
字段引用
$ 字段引用需要加$,而变量引用直接用变量名取
运算符
+ - * / % ++ --

分支结构:

if (条件) 动作
若有多个动作,则要用大括号将动作体包含起来 if (条件) {动作1;动作2}
# awk -F: '{if ($1 == "root") print $1}' /etc/passwd
root

# awk -F: '{if ($1 == "root") {print $1;print $6}}' /etc/passwd
root
/root

输出样式:
%s是字符类型,%d数值类型
printf默认是不输出换行的所以要加\n
10和7是偏移量
默认是右对齐,所有加个- 就是左对齐,就是把不足的位数用空格填充
注意:格式与输出列之间要有逗号
# awk -F: '{printf "%-10s %-10d %s\n",$1,$3,$7}' /etc/passwd

转载于:https://www.cnblogs.com/niejinmei/p/6607031.html

awk、变量、运算符、if多分支相关推荐

  1. python变量运算符_Python(三) 变量与运算符

    一.什么是变量 变量 = [1,2] 二.变量的命名规则 字母,数字,下划线,首字母不能是数字 系统关键字 不能用在变量名中 保留关键字 区别大小写 a=1,   a='1',   a=(1,2),  ...

  2. C语言程序设计 翁恺 中M2020春C入门练习第I段——变量、表达式、分支、循环 (2021/09/25 更新:AC代码 翻新至78题)

    入门练习 第一段:变量.表达式.分支.循环 1. 重要的话说三遍 2. I Love GPLT 3. 输出带框文字 4. 输出菱形图案 5. 输出倒三角图案 6. 厘米换算英尺英寸 7. 计算摄氏温度 ...

  3. python里、能用分支结构写出循环的算法吗_python变量运算符分支结构循环结构及例题...

    第一周总结复习 python的[官方网站](http://python.org) ##变量 ''' 1.变量的作用:变量是数据的载体 2.变量的命名:字母数字下划线开头,不能用数字开头 不能用关键字, ...

  4. CentOS 终端命令(5)Bash变量运算符和条件测试分支结构

    编写简单的hello world脚本,查看脚本内容,并运行 使用bash命令运行shell脚本 [lwj@192 file01]$ touch test.sh //创建新文件 [lwj@192 fil ...

  5. 数据库连接查询 变量 运算符

    连接查询:通过连接运算符可以实现多个表查询.连接是关系数据库模型的主要特点,也是它区别于其它类型数据库管理系统的一个标志. 常用的两个链接运算符: 1.join   on 2.union(只有列的数据 ...

  6. JavaScript 运算符与逻辑分支

    = 等于 x=2; += 加等于 x+=3; 等同于x=x+3; -= 减等于 x-=3; 等同于x=x-3; = 乘等于 x=3; 等同于x=x*3; -= 除等于 x/=3; 等同于x=x/3; ...

  7. C语言笔记含源码(变量、输入输出、分支、循环、函数、数组、指针、字符串、结构体)小总结

    文章目录 一.变量与输入输出 二.分支语句 三.循环 四.函数 五.数组 六.指针 七.字符串 八.结构体 一.变量与输入输出 定义变量需要:类型.变量名.变量值(可有可无) #include < ...

  8. Java码农进阶之路~基本数据类型运算符流程控制-分支三目

    基本数据类型 首先先说下字节:字节(byte)是计算机信息技术用于计量存储容量的一种计量单位 通常情况下一字节由8个二进制位表示 0000 0000; 一个字节的取值范围为-128~127. 大家有兴 ...

  9. 【ECMAScript】语法、规范、错误、运算符、判断分支、注释

    目录 1. 规范 2. 错误 2.1. 语法错误 2.2. 引用错误 3. 算数运算符 3.1. 优先级 3.2. + 加法 3.3. / 除法 3.4 % 取模 3.3. 交换值 3.4. ++.- ...

  10. awk3.0 — awk变量

    awk有一些内置变量和外置变量,内置变量就是awk自带的变量,用户可以拿来直接使用,如FS,OFS等 awk常用内置变量如下几种: FS:输入单词分隔符,默认是空格 OFS:输出单词分隔符,默认是空格 ...

最新文章

  1. 都9102年了,还问GET和POST的区别
  2. Intel X86 CPU系列的寄存器
  3. 用户层CS段描述符信息
  4. 小波滤波器与其他滤波器的区别_小波变换(六):小波变换在机器学习中的应用(上)...
  5. mysql流量控制_Daloradius限制上网流量
  6. php 动态添加表格行,jQuery给html表格动态添加行方法总结
  7. WordPress插件WBOLT百度推送管理插件3.4.10 Pro绿色版
  8. android+残留软件包名,关于使用pm hide伪卸载系统软件的一些包名
  9. easyui php分页,easyui datagrid分页 4、easyUI-七种布局(layout)
  10. WMS仓库管理软件操作流程是怎样
  11. day2_python年会抽奖游戏
  12. mysql my.cnf文件_详解MySql的配置文件my.cnf
  13. ORAN架构和功能划分
  14. 大数据行业前景_大数据未来展望
  15. python数字转换为大写中文_阿拉伯数字金额转中文大写 (python实现)
  16. oracle+omf+格式,Oracle OMF管理数据文件
  17. 网络钓鱼仍然是安全行业的祸害
  18. android 常用的代码
  19. 机器人动力学方程的四种形式
  20. 蓝桥杯单片机比赛学习:9、PCF8591的基本原理和使用方法

热门文章

  1. Linux下的、1、2、2>1、dev/null黑洞文件
  2. linux命令(7)—— 管道符|、ps
  3. 封装数据库一系列操作,包括打开/新建数据库,增删改查
  4. float与double类型区别比较
  5. 1.2 torch_数据预处理
  6. 机器学习 KD树_递归_回溯_搜索(matlab实现)
  7. HLS Pargmas(2) interface
  8. springSecurity源码分析——DelegatingFilterProxy类的作用
  9. Protocol Buffer入门——轻松搭建java环境 .
  10. 嵌入式系统开发怎样快速度入门