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. 精选!15个必备的VSCode插件

    Visual Studio Code 是由微软开发的一款免费.跨平台的文本编辑器.由于其卓越的性能和丰富的功能,它很快就受到了大家的喜爱. 就像大多数 IDE 一样,VSCode 也有一个扩展和主题市 ...

  2. jQuery应用实例1:定时弹出图片

    以前用JS实现的:http://www.cnblogs.com/xuyiqing/p/8373064.html 这里利用jQuery实现,并且做得更完善: <!DOCTYPE html> ...

  3. 移动端h5页面的那些坑

    最近一直在写移动端页面,由于之前写移动端写的比较少,所以此次踩过许多坑.特此总结一下: 1.<input type='button'>背景色在ios中的兼容性,颜色发白 解决办法:在全局样 ...

  4. LeetCode: 106_Construct Binary Tree from Inorder and Postorder Traversal | 根据中序和后序遍历构建二叉树 | Medium

    要求:根据中序和后序遍历序列构建一棵二叉树 代码如下: struct TreeNode { int val; TreeNode *left; TreeNode *right; TreeNode(int ...

  5. leetcode — reverse-nodes-in-k-group

    /** * Source : https://oj.leetcode.com/problems/reverse-nodes-in-k-group/ * * Created by lverpeng on ...

  6. ProxySQL Cluster 高可用集群环境部署记录

    ProxySQL在早期版本若需要做高可用,需要搭建两个实例,进行冗余.但两个ProxySQL实例之间的数据并不能共通,在主实例上配置后,仍需要在备用节点上进行配置,对管理来说非常不方便.但是Proxy ...

  7. js实现全选/全不选、反选

    <!doctype html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  8. netty源码解解析(4.0)-11 Channel NIO实现-概览

      结构设计 Channel的NIO实现位于io.netty.channel.nio包和io.netty.channel.socket.nio包中,其中io.netty.channel.nio是抽象实 ...

  9. [Cerc2012]Non-boring sequences

    Description 定义一个序列是不无聊的,当且仅当它的所有子区间都存在一个独一无二的数字,即每个子区间里至少存在一个数字只出现过一次.给定一个长度为\(N(N\leq2\times 10^5)\ ...

  10. [Noip2015PJ] 求和

    Description 一条狭长的纸带被均匀划分出了 \(n\) 个格子,格子编号从 \(1\) 到 \(n\) .每个格子上都染了一种颜色 \(color_i\) 用 \([1,m]\) 当中的一个 ...