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 是一种特殊的模式匹配,最常见的是通 ...
随机推荐
- web框架--tornado自定义分页
1.tornado_main.py #!/usr/bin/env python # -*- coding: utf-8 -*- import tornado.web import tornado.io ...
- Nginx与安全有关的几个配置
Nginx与安全有关的几个配置 原创: 37丫37 运维咖啡吧 昨天 安全无小事,安全防范从nginx配置做起 上一篇文章<Nginx的几个常用配置和技巧>收到了不错的反馈,这里再总结下n ...
- ASP.NET Core 新建项目(Windows)
对于任何语言和框架,都是从 Hello World 开始的,这个非常简单,但却有十分重大的意义,ASP.NET Core 基础教程也会以 Hello World 开始 为什么呢? 因为能够运行 Hel ...
- 【转】java 泛型详解
java 泛型详解 对java的泛型特性的了解仅限于表面的浅浅一层,直到在学习设计模式时发现有不了解的用法,才想起详细的记录一下. 本文参考java 泛型详解.Java中的泛型方法. java泛型详解 ...
- [LeetCode] 454. 4Sum II 四数之和之二
Given four lists A, B, C, D of integer values, compute how many tuples (i, j, k, l) there are such t ...
- C#编写了一个基于Lucene.Net的搜索引擎查询通用工具类:SearchEngineUtil
最近由于工作原因,一直忙于公司的各种项目(大部份都是基于spring cloud的微服务项目),故有一段时间没有与大家分享总结最近的技术研究成果的,其实最近我一直在不断的深入研究学习Spring.Sp ...
- ReentrantLock 锁释放源码分析
ReentrantLock 锁释放源码分析: 调用的是unlock 的方法: public void unlock() { sync.release(1); } 接下来分析release() 方法: ...
- Jaeger接入Python应用:jaeger-client-python【非完全教程】
目录 Jaeger接入Python应用 1. 安装 jaeger-client 2. (示例)创建 Tracer 对象,并通过 Tracer 对象创建 Span 来追踪业务流程. 3. 初始化和配置 ...
- 深入V8引擎-编译启动
记录一下步骤,方便以后换了电脑重新编译. 1.搞定depot_tools,git地址:git clone https://chromium.googlesource.com/chromium/tool ...
- 实现个虚拟机只要几百行的 toy 版就够了
关键是 指令 的 eval 并把 高层代码进行翻译. 典型的项目: 1. java-compiler (C++) 2. 手把手教你构建 C 语言编译器(0)- 前言 | 三点水 (C)