以/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 ""}}'

awk应用场景之过滤举例的更多相关文章

  1. [svc]find+xargs/sed&sed后向引用+awk多匹配符+过滤行绝招总结&&产生随机数

    30天内的文件打包 find ./test_log -type f -mtime -30|xargs tar -cvf test_log.tar.gz find,文件+超过7天+超过1M的+按日期为文 ...

  2. 使用 awk 过滤文本或文件中的字符串

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

  3. linux awk 使用的一个例子

    1. 场景 从日志中获取漏发奖励的司机id 2. 日志 如下(需要获取一个时间段的 driverIdStr) ::-thread-] order.service.TOrderInfoServiceIm ...

  4. HTTPS Web配置举例

    http://www.h3c.com.cn/Products___Technology/Technology/Security_Encrypt/Other_technology/Representat ...

  5. 使用nio对磁盘下的文件进行过滤

    上篇博文讲到为了解决tomcat日志自动清理的问题,翻看了tomcat-juli这个jar包.在FileHandler类下有一个利用nio完成对磁盘下过期文件进行过滤的功能实现,正好这段时间正在学习n ...

  6. 四.awk、sde深度讲解

    ###sed### 查询 1创建测试文件 cat>person.txt<<EOF> 101,oldboy,CEO> 102,zhangyao,CTO> 103,Al ...

  7. php常用的安全过滤函数

    目录结构 ①常用的安全函数有哪些: ②这些函数的作用: ③函数的用法: ④举例说明: ⑤参考资料: 由于越来越多的项目开始使用框架,所以,很多的程序员也不在关心安全的问题!因为框架已经帮我们几乎完美的 ...

  8. MapReduce编程之Semi Join多种应用场景与使用

    Map Join 实现方式一 ● 使用场景:一个大表(整张表内存放不下,但表中的key内存放得下),一个超大表 ● 实现方式:分布式缓存 ● 用法: SemiJoin就是所谓的半连接,其实仔细一看就是 ...

  9. awk处理excel表格数据

    拿到一个ip的excel表格,要对单元格中的ip进行扫描,一看有点乱,有空格分割的,有"/"分割的,有带括号(分割的,有好几百个: 要把左边的变为右边的格式,用excel自带的功能 ...

随机推荐

  1. C 语言中 include <> 与include "" 的区别?

    #include < > 引用的是编译器的类库路径里面的头文件. #include " " 引用的是你程序目录的相对路径中的头文件,如果在程序目录没有找到引用的头文件则 ...

  2. keil Uvision4 面向51单片机数据类型属性一览表

  3. 「入门篇」初识JVM (下下) - GC

    垃圾收集主要是针对堆和方法区进行:程序计数器.虚拟机栈和本地方法栈这三个区域属于线程私有的,只存在于> 线程的生命周期内,线程结束之后也会消失,因此不需要对这三个区域进行垃圾回收. GC - J ...

  4. 使用Node.js版本管理器

    使用Node.js版本管理器 完全卸载Node.js 清除Package缓存:npm cache clean --force 卸载Node.js:wmic product where caption= ...

  5. html实体编码遇上js代码

    单双引号 在js代码中 在js中单.双引号引起来的是字符串,如果我们要在字符串中使用单.双引号,需要反斜杠进行转义 let str='user\'s name'; // or let str=&quo ...

  6. Kurento安装与入门08——Group Call

    Group Call 本示例展示了一个视频聊天室的功能,不同的聊天室之间互相隔离. 官网文档 Group Call 首先从github上获取代码(如果已经获取可以跳过,获取的代码已经包括后面的示例代码 ...

  7. H5复制粘贴双端适配的解决方案(终极版)

    前言 最终适配所有机型的方案基于clipboardjs官网https://clipboardjs.com/ 这个库由几个不同的CDN提供商托管.选择你最喜欢的:) jsDelivr <scrip ...

  8. ES6-11学习笔记--Reflect

    Reflect 映射 将Object属于语言内部的方法放到Reflect上 修改某些Object方法的返回结果,让其变得更合理 让Object操作编程函数行为 Reflect对象的方法与Proxy对象 ...

  9. python-筛法求素数

    [题目描述]用户输入整数n和m(1<n<m<1000),应用筛法求[n,m]范围内的所有素数. [练习要求]请给出源代码程序和运行测试结果,源代码程序要求添加必要的注释. [输入格式 ...

  10. vue换算单位px自动转换rem

    cnpm i postcss-px2rem --save cnpm install px2rem-loader --save 2.配置px2rem build目录下vue-loader.conf.js ...