文档章节

awk应用场景之过滤举例

yysue
 yysue
发布于 06/14 20:34
字数 499
阅读 14
收藏 1
点赞 0
评论 0

以/etc/passwd举例,passwd文本

[root@196 tmp]# cat /etc/passwd
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
...

关于passwd

  • 用户名(login_name)

  • 口令(passwd)

  • 用户标识号(UID)

  • 组标识号(GID)

  • 注释性描述(users)

  • 主目录(home_directory)

  • 登录Shell(Shell)

过滤行首或行尾

# 以nologin结尾
awk -F: '/nologin$/ {print $1,$NF}' /etc/passwd

# 不以nologin结尾
awk -F: '!/nologin$/ {print $1,$NF}' /etc/passwd 

# 以tom或my开头的行
awk '/^(tom|my)/' /etc/passwd

对某一列或整行进行关键字过滤

# uid列包含3
awk -F: '$3~3 {print $1,$3,$NF}' /etc/passwd

# uid列等于1
awk -F: '$3==1' /etc/passwd

# 包含systemd-n或systemd-b的行
# []匹配[]内字符集合中的一个,如[123abc]只能匹配123abc中的一个字符
awk '/systemd-[nb]/' /etc/passwd

# 包含tomcat和mysql的行
awk -F: '/tomcat|mysql/' /etc/passwd
# 只对第一列进行过滤
awk -F: '$1 ~ /tomcat|mysql/' /etc/passwd

# 不包含tomcat和mysql的行
awk -F: '!/tomcat|mysql/ || NR==1' /etc/passwd
# 只对第一列进行过滤
awk -F: '$1 !~ /tomcat|mysql/ || NR==1' /etc/passwd

输出某一范围内的行

# 输出第一次匹配行首为tomcat行 到 第一次匹配行首为ntp的行之间的行,也包括被匹配的行
awk -F: '/^tomcat/,/^ntp/ {print NR, $0}' /etc/passwd

# 输出从n行到m行
awk -F: 'NR>=3 && NR<=10 {print NR, $0}' /etc/passwd

其他场景

比如一个文件有m列,但我只想输出n列,n <= m,怎么弄?

http://bbs.chinaunix.net/forum.php?mod=viewthread&tid=4096433

echo "aaa bbb ccc ddd" |awk '{NF-=2}1'
aaa bbb

# 补充一下输出2到n列
awk -F: 'BEGIN{n=4}{for(i=2;i<n;i++)printf $i":";print $i}' /etc/passwd

[seesea@UC ~]$ cat file
1       2       3       4
a       b       c       d
x       y       z       .
[seesea@UC ~]$ cut -f 2- file
2       3       4
b       c       d
y       z       .
[seesea@UC ~]$ cut -f 3- file 
3       4
c       d
z       .
[seesea@UC ~]$ cut -f 4- file 
4
d
.

显示ps aux命令执行时,当前系统上其VSZ(虚拟内存集)大于10000的进程及其PID

ps aux|awk '!/^USER/ {if($5>10000) {printf $2"------"; for(i=11;i<=NF;i++) printf $i"";print ""}}'

© 著作权归作者所有

共有 人打赏支持
yysue
粉丝 16
博文 142
码字总数 119152
作品 0
济南
程序员
shell学习之正则表达式【基础篇】

什么是正则表达式: 是你定义的、linux工具用来过滤文本的模式模板。Linux工具(比如sed编辑器或gawk)能够在数据流向工具时对数据进行正则表达式模式匹配。如果数据匹配模式,它就会被接受并...

白羊IT
2017/04/15
0
0
Kali 渗透测试技术 穿梭网络间的信使

What is Kali Kali Linux是一个基于Debian的Linux发行版,旨在实现高级渗透测试和安全审计。Kali包含数百个工具,面向各种信息安全任务,如渗透测试,安全研究,计算机取证和逆向工程。Kali ...

语落心生
2017/11/22
0
0
如何使用 awk 和正则表达式过滤文本或文件中的字符串

当我们在 Unix/Linux 下使用特定的命令从字符串或文件中读取或编辑文本时,我们经常需要过滤输出以得到感兴趣的部分。这时正则表达式就派上用场了。 什么是正则表达式? 正则表达式可以定义为...

开元中国2015
2016/07/19
48
0
美团点评开源 MySQL 极速闪回工具 MyFlash

MyFlash 是由美团点评公司技术工程部开发维护且内部使用的一个回滚 DML 操作的工具,旨在方便且高效地进行数据恢复,已于近日宣布开源。该工具通过解析 v4 版本的 binlog ,完成回滚操作。相...

王练
2017/11/25
2.8K
2
Extended Regular Expression 扩展正则的使用

本章正题:Extended Regular Expression 1.1 扩展正则 1.1.1 {} o{n,m} 前一个字符至少连续出现n次,最多连续出现了m次 例1:最少连续出现3个0,最多连续出现4个0 [root@georgekai oldboy]# ...

GeorgeKai
2017/12/27
0
0
[复习] grep、sed、awk练习题(二)

awk 中使用外部shell变量 如:A=44echo "ABCD" | awk -v GETA=$A ’{print GETA}’说明:-v选项用于定义参数,这里表示将变量A的值赋予GET_A。有多少个变量需要赋值,就需要多少个-v选项。与...

Hi_Yolks
07/09
0
0
庖丁解牛获取连接状态数的awk数组命令

庖丁解牛获取连接状态数的命令 3.1 获取连接状态数的awk命令 netstat -n |awk '/^tcp/ {++S[$NF]} END {for(a in S) print a, S[a]}' 提示:将netstat -n的结果通过管道符交给awk命令处理。 ...

xiaofeng886
2017/03/24
0
0
手把手教你使用 Btrace 定位应用热点

前言 前段时间笔者对一个 Java 类型的项目做性能测试,发现应用 CPU 使用率很高,TPS 无法满足需求,只能通过使用性能问题定位的利器—— Btrace 来获取方法调用的平均耗时与单笔交易执行次数...

泡面办公室
2017/09/29
0
0
部分企业常见面试题详解

1、如何过滤出已知当前目录下oldboy中的所有一级目录(提示:不包含oldboy目录下面目录的子目录及隐藏目录,即只能是一级目录)? 思路: ①根据颜色区分文件和目录 未知 ②ls -l输出结果中以d...

DiligentMe
2017/11/13
0
0
分发列表配置实验--rip和ospf协议下的区别

分发列表配置实验 分发列表通过访问控制列表ACL控制数据流类型,从而可以利用ACL限制路由表的选择更新。知识准备:1、 distribute-list配置分发列表的三种方式1) 入口过滤 :进入路由器的接...

老赵网络
2017/12/27
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

自定义OkHttp的UA

背景 上次的问题很明显 由于我们的ua清一色OkHttp导致快速定位到内部应用。 既然如此我们是否考虑可以在UA上做点手脚。 自定义我们的UA呢??? 分析 首先UA在 均为okhttp/3.2.0 大概率是由于...

Mr_Qi
17分钟前
0
0
【scikit-learn】01:使用案例对sklearn库进行简单介绍

sklearn学习笔记:Quick Start 源地址:http://scikit-learn.org/stable/tutorial/basic/tutorial.html # -*-coding:utf-8-*-''' Author:kevinelstri Datetime:2017.2.16'''......

wangxuwei
21分钟前
0
0
Linux Kernel 4.16 系列停止维护,用户应升级至 4.17

知名 Linux 内核维护人员兼开发人员 Greg Kroah-Hartman 近日在发布 4.16.18 版本的同时,宣布这是 4.16 系列的最后一个维护版本,强烈建议用户立即升级至 4.17 系列。 Linux 4.16 于 2018 年...

问题终结者
22分钟前
0
0
Apache配置时.htaccess失效不起作用的原因分析

.htaccess 失效的原因 1. 重写规则有问题,检查自己的重写规则 2.Apache配置问题,配置中没有配置启用 rewrite a2enmod rewrite 3.网站配置文件没有启用配置需要配置 000-default.conf <Dire...

TU-DESGIN
42分钟前
1
0
两个求最大公约数C/C++算法实现

#include<stdio.h> #include<time.h> #include <iostream>using namespace std;//求最大公约数 LCD(Largest Common Division)//短除法 //m=8251, n=6105; int LCD_ShortDiv(int m, ......

失落的艺术
48分钟前
1
0
QueryPerformanceCounter

windows的Sleep函数,睡眠线程指定毫秒数,可以用来做毫秒延时。 对于微秒延时,没有一个现成的函数,但是可以通过 QueryPerformanceFrequency QueryPerformanceCounter 来间接实现。原理就是...

开飞色
今天
1
0
log4j2使用AsyncRoot不显示行号问题处理

<AsyncRoot level="info" includeLocation="true"> <AppenderRef ref="File"/></AsyncRoot><!--1.异步logger,还需要在pom.xml中添加disruptor的依赖。2.includeLocation结合异......

小翔
今天
3
0
安卓手机上 K 歌,声音延迟怎么解决?

这篇文章可以为你提供一个解决录音和播放同步问题的思路,而且解决了声音从手机传输到耳机上有延时的问题。 初识音频 在开始之前,我先简单介绍一下音频相关的基础知识,方便下文理解。 我们...

编辑部的故事
今天
2
0
使用token实现在有效期内APP自动登录功能

使用token实现在有效期内APP自动登录功能 http://sevennight.cc/2016/07/19/auto_login_impl.html

风云海滩
今天
2
0
Spring Boot集成RabbitMQ发送接收JSON

默认情况下RabbitMQ发送的消息是转换为字节码,这里介绍一下如何发送JSON数据。 ObjectMapper 最简单发送JSON数据的方式是把对象使用ObjectMapper等JSON工具类把对象转换为JSON格式,然后发送...

小致dad
今天
3
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部