Linux shell awk模式使用
awk的PATTERN表示方法:
1,正则表达式,格式为/regex/
以冒号为分隔符,显示/etc/passwd以r开头的行的第一段
[root@wei awk]# awk -F: '/^r/{print $1}' /etc/passwd
root
以冒号为分隔符,显示/etc/passwd以nologin结尾的行的第一段
[root@wei awk]# awk -F: '/nologin$/{print $1}' /etc/passwd
bin
daemon
adm
lp
mail
以冒号为分隔符,显示/etc/passwd以r或者h开头的行的第一段
[root@wei awk]# awk -F: '/^[rh]/{print $1}' /etc/passwd
root
halt
hei
写出/etc/的软链接的名字
[root@wei awk]# ls -l /etc/ |awk '/^l/{print $NF}'
/usr/share/icons/hicolor/16x16/apps/fedora-logo-icon.png
../boot/grub2/grub.cfg
2,表达式,有下面操作符组成的表达式
awk的操作符
1 ,算术操作符
-x 负值
+x 转换为数值,正值
x^y x**y 次方
x/y
x*y
x-y
x+y
x%y
2 ,字符串操作符
+:实现字符串连接 "ab"+"cd" abcd
3 ,赋值操作符
=
+=
-+
*=
、=
%=
^=
**=
4 ,比较操作符
x<y
x<=y
x>y
x>=y
x==y
x!=y
x~y:x为字符串,y为模式,如果x可以被模式匹配则为真,否则为假
x!~y
5 ,逻辑关系符
&& 与
|| 或者
显示uid大于等于500的用户的及uid
[root@wei awk]# awk -F: '$3>=500{print $1,$3}' /etc/passwd
polkitd 999
saslauth 998
hei 1200
wei 1001
3 ,指定范围,格式为pattern,pattern2
以冒号为分隔符,显示uid=0到最后一个字段为nologin结尾中间所有的用户名称,uid及shell
[root@wei awk]# awk -F: '$3==0,$7~"nologin$"{print $1,$3,$7}' /etc/passwd
root 0 /bin/bash
bin 1 /sbin/nologin
4 ,BEGIN/END, 特殊模式
BEGIN表示awk进行处理前执行一次操作
END表示awk处理完最后一行结束前执行一次操作
使用BEGIN打印表头
[root@wei awk]# awk -F: 'BEGIN{printf "%-10s%-10s%-20s\n","username","uid","shell"}$3==0,$7 ~ "nologin$"{printf "%-10s%-10s%-10s\n",$1,$3,$7}' /etc/passwd
username uid shell
root 0 /bin/bash
bin 1 /sbin/nologin
使用END打印表尾
[root@wei awk]# awk -F: 'BEGIN{printf "%-10s%-10s%-20s\n","username","uid","shell"}$3==0,$7 ~ "nologin$"{printf "%-10s%-10s%-10s\n",$1,$3,$7}END{print "END OFFILE..."}' /etc/passwd
username uid shell
root 0 /bin/bash
bin 1 /sbin/nologin
END OFFILE...
Linux shell awk模式使用的更多相关文章
- linux shell awk 流程控制语句(if,for,while,do)详细介绍
在linux awk的 while.do-while和for语句中允许使用break,continue语句来控制流程走向,也允许使用exit这样的语句来退出.break中断当前正在执行的循环并跳到循环 ...
- Linux shell awk中print及变量使用
Linux处理文本工具 grep: 过滤文本内容 sed: 编辑文本内容 awk: 显示文本 awk: Aho Peter Weinberger Kerni ...
- Linux shell awk数组使用
awk中使用数组 一.数组格式 数组是一个包含一系列元素的表. 格式如下: abc[1]="xiaohong" abc[2]="xiaolan" ...
- linux shell awk实现实时监控网卡流量脚本
goodtools! 原文 awk 'BEGIN{ OFMT="%.3f"; devf="/proc/net/dev"; while(("cat &q ...
- Linux shell awk逻辑控制语句
awk逻辑控制语句 1,if...else 格式: if(条件){语句:语句} else {语句1:语句2} 如果statement只有一条语句,{}可以不写 以冒号为分隔符,判断第一个字段,如果为r ...
- Linux shell awk中printf使用
printf 是 awk 的重要格式化输出命令 printf格式化输出内容 格式: printf format,item1,item2... 要点: 1,printf输出时要指定格式f ...
- 【转】Awk 命令学习总结、AWk命令系列学习(linux shell)
前面的话 学习linux 的同人,都知道linux shell文本处理能力非常强大.有一组强大的文本处理工具:grep,sed,awk . 其中grep 经常用作查找匹配文本.sed用作文本编辑替换. ...
- Awk 命令学习总结、AWk命令系列学习(linux shell)
AWK基本语法 下面没有提到awk命令怎么使用了,你可以通过 运行:awk –h 查询到所有命令及参数!下面把awk作为一门语言分节介绍. linux awk 内置变量使用介绍 awk语言中,怎么 ...
- Linux shell 通配符 / glob 模式
概念 glob 模式(globbing)也被称之为 shell 通配符,名字的起源来自于 Unix V6 中的 /etc/glob (详见 man 文档).glob 是一种特殊的模式匹配,最常见的是通 ...
随机推荐
- Excel-数据透视表
例如: 购买数量采用求和的方式 用户数ID数据采用计数的方式 一.数据透视表的结构 二.数据透视表的步骤 1.订单表 提出问题,理解数据,数据清晰,构建模型,数据可视化 问题1:每个客户的订单量? 问 ...
- 【PE512】Sums of totients of powers(欧拉函数)
点此看题面 大致题意: 求\(\sum_{n=1}^{5*10^8}((\sum_{i=1}^n\phi(n^i))(mod\ n+1))\). 大力推式子 单独考虑\((\sum_{i=1}^n\p ...
- CSP2019滚粗记
CSP2019滚粗记 从不拖更 Day -inf 考完月考才停课\kel,然后月考又被吊打了. Day -1 和左边的\({\text L}\color{red} {\text{ongge}}\)右边 ...
- CF932F Escape Through Leaf(DP,斜率优化)
SB 题. 写出 DP 方程:\(f_i\) 表示从 \(i\) 跳的最小值. \(i\) 是叶子就是 \(0\),否则就是选个子树中的 \(v\),\(f_i=\min(f_v+a_ib_v)\). ...
- [LeetCode] 301. Remove Invalid Parentheses 移除非法括号
Remove the minimum number of invalid parentheses in order to make the input string valid. Return all ...
- 获取oracle中某张表的各个字段名称
select column_name from all_tab_columns where table_name='AT2_SSIS_CHNDB_CLIENT_INFO'
- NOI 2010 海拔(最小割转最短路)
题意 https://www.lydsy.com/JudgeOnline/problem.php?id=2007 思路 首先可以发现一个结论,每个位置的海拔只有能是 \(0\) 和 \(1\) ,然后 ...
- tomcat 指定(自定义)JDK路径的两种方式
1.情景展示 tomcat7使用jdk1.7:tomcat8使用jdk1.8.两个tomcat在一台机器下同时启动,你会发现这两个tomcat使用的是一个版本的jdk, 那就是你配置过的JAVA_ ...
- 手撕代码:统计1到n二进制数中1出现的总次数
题目描述: 互娱手撕代码题. 统计从1到n这n个数的二进制表示中1出现的次数. 思路分析: 思路一:直接的做法是从1遍历到n,对于每个数和1做与操作,之后,对于这个数不断做右移操作,不断和1做与操作, ...
- [MSSQL]找出一天数据中从第一条数据开始每累加1小时的数据
用Sql Server找出一天数据中从第一条数据开始每累加1小时的数据 -- ============================================= -- Author: Alle ...