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 是一种特殊的模式匹配,最常见的是通 ...
随机推荐
- goto命令
GOTO会点编程的朋友就会知道这是跳转的意思. 在批处理中允许以“:XXX”来构建一个标号,然后用GOTO XXX跳转到标号:XXX处,然后执行标号后的命令. 例: }=={} goto noparm ...
- navicat密码错误的问题
上集说到我的navicat打不开对吧..‘ 这下就来聊聊打开了的问题 下午非常开心,就打开了mysql的图形化界面, 但是,在我连接数据库的时候就报错了 错误就是密码错误那行 什么什么‘localho ...
- 【转】hibernate对象三种状态
hibernate里对象有三种状态: 1,Transient 瞬时 :对象刚new出来,还没设id,设了其他值. 2,Persistent 持久:调用了save().saveOrUpdate(),就变 ...
- Codeforces Global Round 4 题解
技不如人,肝败吓疯…… 开场差点被 A 题意杀了,幸好仔细再仔细看,终于在第 7 分钟过掉了. 跟榜.wtf 怎么一群人跳题/倒序开题? 立刻紧张,把 BC 迅速切掉,翻到了 100+. 开 D.感觉 ...
- 第21课 shared_ptr共享型智能指针
一. shared_ptr的基本用法 (一)与unique_ptr的比较 比较 shared_ptr unique_ptr 备注 初始化 ①shared_ptr<T> sp; sp.res ...
- Extra:Cg Math Functions
常用Cg函数 数学函数 abs(x):绝对值 // float类型的实现 float abs(float x) { return max(-a, a); } sin(x):正弦,输入为弧度 // fl ...
- SourceTree 免登录
SourceTree 是 Windows 和Mac OS X 下免费的 Git 和 Hg 客户端,拥有可视化界面,容易上手操作.同时它也是Mercurial和Subversion版本控制系统工具.支持 ...
- 第八节:EF Core连接MySql数据库
一. 前提 1.安装EF Core连接MySQL的驱动,这里有两类: (1).Oracle官方出品:MySql.Data.EntityFrameworkCore (版本:8.0.17) (2).其他第 ...
- Linux内核之vmlinuz反汇编
本文介绍在Fedora上对Linux内核的vmlinuz进行反汇编.如果内核是debug版本,可以用来查看某个函数的源代码. 1. 安装kernel-devel软件包 dnf -y install k ...
- Android项目实现Module目录结构分组
一.背景 项目需求的频繁迭代,新的产品功能在不断添加和延伸,随之带来的是,项目技术复杂度的提升. 近几年来,Android模块化.组件化相关技术得到极速发展,将项目整体进行分层,不同的层次之间依据实际 ...