awk 3元表达式,if...else结构都可以用3元表达式改写

ghostwu@dev:~/linux/awk$ awk -v FS=":" '{ type=$3>=1000?"普通用户":"系统用户";print $1,type}' /etc/passwd
root 系统用户
daemon 系统用户
bin 系统用户
sys 系统用户
sync 系统用户
games 系统用户
man 系统用户
lp 系统用户
mail 系统用户
news 系统用户
uucp 系统用户
proxy 系统用户
www-data 系统用户
backup 系统用户
list 系统用户
irc 系统用户
gnats 系统用户
nobody 普通用户
systemd-timesync 系统用户
systemd-network 系统用户
systemd-resolve 系统用户
systemd-bus-proxy 系统用户
syslog 系统用户
_apt 系统用户
messagebus 系统用户
uuidd 系统用户
lightdm 系统用户
whoopsie 系统用户
avahi-autoipd 系统用户
avahi 系统用户
dnsmasq 系统用户
colord 系统用户
speech-dispatcher 系统用户
hplip 系统用户
kernoops 系统用户
pulse 系统用户
rtkit 系统用户
saned 系统用户
usbmux 系统用户
ghostwu 普通用户
mysql 系统用户
guest-iilhaz 系统用户
smmta 系统用户
smmsp 系统用户

统计普通用户与系统用户的个数

ghostwu@dev:~/linux/awk$ awk -v FS=":" '{$3>=1000 ? user++ : snumber++} END{print "user number:", user, "system number:", snumber}' /etc/passwd
user number: system number:

awk打印奇偶行

1、在awk中,如果省略了模式对应的动作,当前行满足模式时,默认动作为打印整行,即{print $0}

2、在awk中,0或者空字符串表示"假",非0值或者非空字符串表示"真",当模式为假,动作不会执行,当模式为真,动作会执行

ghostwu@dev:~/linux/awk$ awk 'i=!i' lines.txt
第 行
第 行
第 行
第 行
第 行
第 行

awk扫描第一行时,i变量被初始化为空值, 取反之后 变为真, 整个模式就为真,所以打印第一行, 第二行的时候,取反赋值变为假。。。。以此类推

ghostwu@dev:~/linux/awk$ awk '{i=!i;print i;}' lines.txt 

再次取反,打印的就是偶数行

ghostwu@dev:~/linux/awk$ awk '!(i=!i)' lines.txt
第 行
第 行
第 行
第 行
第 行

Linux常用基本命令:三剑客命令之-awk 三元表达式的更多相关文章

  1. Linux常用基本命令:三剑客命令之-sed

    sed是一个很强大的文件处理工具,主要是以行为单位进行处理,可以将数据行进行替换.删除.新增.选取等特定工作 格式:sed [option] [command] [file] 常用命令: a   ∶新 ...

  2. Linux常用基本命令(less)

    转: Linux常用基本命令(less) LESS:跟more命令的功能类似,都是用于分页显示内容,但是他的性能比more更高,功能比more更丰富,他读取文件是按需加载 格式: less [opti ...

  3. Linux 常用基本命令及应用技巧

    需要pdf 版 联系我 我的文件中有目录一.Linux 的常用基本命令................................................................. ...

  4. ## 本篇文章对linux常用的一些命令做一下总结,如有需要补充以及不懂得地方,请在下方留言 适合于linux初学者,以及对命令掌握不牢的用来备忘

    本篇文章对linux常用的一些命令做一下总结,如有需要补充以及不懂得地方,请在下方留言 适合于linux初学者,以及对命令掌握不牢的用来备忘一,磁盘管理1.显示当前目录位置 pwd2.切换目录 cd ...

  5. Linux中使用sed命令或awk命令修改常规配置文件

    一.方案: Linux中使用sed命令或awk命令修改常规配置文件 二.步骤: 1.假设有一个a.txt,内容如下: #!/bin/bash aa= bbb= ccc= #ddd= 2.如果想要把里面 ...

  6. Linux 常用的压缩命令有 gzip 和 zip

    Linux 常用的压缩命令有 gzip 和 zip,两种压缩包的结尾不同:zip 压缩的后文件是 *.zip ,而 gzip 压缩后的文件 *.gz 相应的解压缩命令则是 gunzip 和 unzip ...

  7. Linux常用基本命令:三剑客命令之-awk基础用法

    awk是一个超级强大的文本格式化处理工具,他与grep, sed命令被成为linux 三剑客命令 三剑客命令的特点: grep:只要用来匹配和查找文本 sed: 编辑匹配到文本 awk: 格式化文本, ...

  8. Linux常用的基础命令总结

    man 查看英文命令帮助   可以看作--help 拷贝目录的命令cp -a  包含所有 ls -a 显示所有文件包括隐藏文件  -ld ls -F 过滤目录文件(给不同类型文件结尾加上不同的符号) ...

  9. LINUX常用配置及命令

    一.   Fedora系统配置 1.      [设置网卡IP] 步骤如下: 1)     用root用户登陆,打开/etc/sysconfig/network-scripts/ifcfg-eth0文 ...

随机推荐

  1. scala字符串前加s使用$

    https://my.oschina.net/u/2000675/blog/1592140 字符串中的变量替换,Scala中基础的字符串插值就是在字符串前加字幕‘s’,然后在字符串中放入变量,每个变量 ...

  2. 「PKUWC2018」随机游走(min-max容斥+FWT)

    「PKUWC2018」随机游走(min-max容斥+FWT) 以后题目都换成这种「」形式啦,我觉得好看. 做过重返现世的应该看到就想到 \(min-max\) 容斥了吧. 没错,我是先学扩展形式再学特 ...

  3. 枚举类型enum详解——C语言

    enum enum是C语言中的一个关键字,enum叫枚举数据类型,枚举数据类型描述的是一组整型值的集合(这句话其实不太妥当),枚举型是预处理指令#define的替代,枚举和宏其实非常类似,宏在预处理阶 ...

  4. Flask实例化的参数 及 对app的配置

    首先展示一下: from flask import Flask app = Flask(__name__) # type:Flask app.config["DEBUG"] = T ...

  5. Android开发工程师文集-1 小时学会SQLite

    前言 大家好,给大家带来Android开发工程师文集-1 小时学会SQLite的概述,希望你们喜欢 内容 什么是Sqlite: 效率高,开源,小型,程序驱动,支持事务操作,无数据类型,可嵌入的关系型数 ...

  6. vs2017 遇到异常。这可能是由某个扩展导致的。奇妙的解决方式

    最近在使用visual studio 2017 创建.netcore 2.2的MVC项目后,在View里面拖拽引用css或js文件时总出现“遇到异常.这可能是由某个扩展导致的.” 然后在网上找了大半天 ...

  7. JS应用实例6:二级联动

    本案例很常用,应用场景:注册页面填写籍贯,省市二级联动 总体思想:创建一个二维数组存入省市,获取选中的省份并比较,创建标签遍历添加 代码: <!DOCTYPE html> <html ...

  8. [git] 常用配置

    基本配置 对git进行配置时使用 git config 命令进行操作 1. git config 的作用域,缺省等于 local git config --local   #只针对某个仓库有效 git ...

  9. vue 自学笔记(5) 列表渲染

    列表渲染 一:v-for 指令 当我们涉及到列表渲染数据的时候,不可能做一个重复的工作去不停的一个一个的渲染每一项列表.并且列表数据的表现,比如从后端请求过来的数据,不可能是一个一个的单独的 JSON ...

  10. Java学习之Servlet篇

    <JAVA遇见HTML——Servlet篇> Servlet 生命周期:Servlet 加载--->实例化--->服务--->销毁. init():在Servlet的生命 ...