[root@a ~]# awk 'END{print NR}' c.txt       #没错,这就是文件的行数,当然,这种统计方法不是linux下最快的,但也是一种思路
3
[root@a ~]# wc -l c.txt         #这种统计方法是linux下最快的
3 c.txt

[root@a ~]# head -3 /etc/passwd

root:a:0:0:root:/root:/bin/bash
bin:b:1:1:bin:/bin:/sbin/nologin
daemon:c:2:2:daemon:/sbin:/sbin/nologin

[root@a ~]# head -3 /etc/passwd | awk -F':' '{print $1}'

root
bin
daemon
[root@a ~]# head -3 /etc/passwd | awk -F':' '{print $2}'

a
b
c
[root@a ~]#head -3 /etc/passwd | awk -F':' '{print $1}{print $2}'    
root
a
bin
b
daemon
c

#有两个print,可以看到第二列放到了第一列之后换行显示

[root@a ~]# head -3 /etc/passwd | awk -F':' '{print $1,"\n",$2}'    

root 
a
bin 
b
daemon 
c

#在print中将$1和$2之间加一个\n,第二列前的空白字符也被输出了,两者还是有所区别

[root@a ~]# head -5 /etc/passwd | awk -F: '{if(NR>2&&NR<5)print NR,$0}'   
3 daemon:x:2:2:daemon:/sbin:/sbin/nologin
4 adm:x:3:4:adm:/var/adm:/sbin/nologin

#awk条件语句,打印整行信息并显示打印行号,if语句位置在{ }中间

awk -F':' '$1~/root/'  1.txt

root:x:0:0:root:/root:/bin/bash

111root222:x:0:0:root:/root:/sbin/nologin

awk -F':' '$1~/root/{OFS="#";print $1,$2,$3}'  1.txt

root#x#0

111root222#x#0

awk -F':' '$1=="root"{print$1,$2,$3}'  1.txt

root x 0

awk -F':' '$1=="root" || NR>=30{print $1,$2}' 1.txt

root x

rpc x

111

awk -F':' 'NF>3&&NR<3{print $1,$2,$3}' 1.txt

root x 0

111root222 x 0

~为模糊匹配,==表示精确匹配

awk -F:  '$3>=1000&&NF=="/bin/bash"{print $1,$NF}'  /etc/passwd

#打印系统中能够正常登陆的普通用户

echo “one tow three four” |awk '{print $(NF-2)}'

two

#awk支持四则运算

awk ‘{print $2+20 >> "b.txt"}’  a.txt

#可以通过awk命令将结果重定向输出到b.txt文件

[root@a ~]# awk -F':' 'NF>3&&NR>16{print NR,"\t",$3,$5}'  /etc/passwd

17   89 
18   74 Privilege-separated SSH

打印符合条件的内容并显示行号,awk模式支持关系表达式

awk -F':'  '$1~”root“{print $0}' 1.txt

#OFS用于输出时指定字段分隔符,后跟“;”接后续命令

awk -F':' '$1=="root"{print $1,$2}' 1.txt

awk -F':'  '$1=="root"||NR>=30{print $1,$2}' 1.txt

awk -F':'  'NF>3 &&NR<4{print $1,$2,$3}' 1.txt

#列数(NF)大于3列,行数(NR)小于4行

匹配

awk -F: '/root/{print}'  a.txt

awk -F: '/root/'  a.txt

awk -F: '/^root/'   a.txt

awk -F: '/bash$'  a.txt

其他语句

awk -F':' '{if($3<10){print "USER=>"$1}} a.txt

awk -F':'  '{printf "USERNAME:%-10s %15s\n",$1,$NF}' a.txt

实例:

1、过滤网卡的ip地址

注意:通过BEGIN{FS="[ :]+"}指定字段分隔符,其中BEGIN和END模块必需写在' '内部,如果是if条件表达式也必需写在' '中间,格式为'{if(条件){命令……}}‘

2、指定字段加20重定向到新的文件

awk通过变量查看文件行数

注意:a++等价于a=a+1,a++表示先赋值后加1。

awk命令1的更多相关文章

  1. linux awk命令详解

    linux awk命令详解 简介 awk是一个强大的文本分析工具,相对于grep的查找,sed的编辑,awk在其对数据分析并生成报告时,显得尤为强大.简单来说awk就是把文件逐行的读入,以空格为默认分 ...

  2. awk命令详解

    搜索 纠正错误  添加实例 awk 文本和数据进行处理的编程语言 补充说明 awk 是一种编程语言,用于在linux/unix下对文本和数据进行处理.数据可以来自标准输入(stdin).一个或多个文件 ...

  3. Linux安全基础:awk命令的使用

    awk是一个强大的文本分析工具,相对于grep的查找,sed的编辑,awk在其对数据分析并生成报告时,显得尤为强大.简单来说awk就是把文件逐行的读入,以空格为默认分隔符将每行切片,切开的部分再进行各 ...

  4. AWK命令学习

    使用方法 awk 'pattern {action}' {filenames} 尽管操作可能会很复杂,但语法总是这样,其中 pattern 表示 AWK 在数据中查找的内容,而 action 是在找到 ...

  5. awk 命令

    awk是一个强大的文本分析工具,相对于grep的查找,sed的编辑,awk在其对数据分析并生成报告时,显得尤为强大.简单来说awk就是把文件逐行的读入,以空格为默认分隔符将每行切片,切开的部分再进行各 ...

  6. AWK命令的用法

    1.awk命令简介: awk是一种可以处理数据.产生格式化报表的语言,功能十分强大. awk的工作方式是读取数据,将每一行数据视为一条记录(record)每笔记录以字段分隔符分成若干字段,然后输出各个 ...

  7. [Linux] linux awk命令详解

    reference : http://www.cnblogs.com/ggjucheng/archive/2013/01/13/2858470.html 简介 awk是一个强大的文本分析工具,相对于g ...

  8. awk命令简单介绍

    简介 awk是一个强大的文本分析工具,相对于grep的查找,sed的编辑,awk在其对数据分析并生成报告时,显得尤为强大.简单来说awk就是把文件逐行的读入,以空格为默认分隔符将每行切片,切开的部分再 ...

  9. Linux的awk命令

    简介 awk是一个强大的文本分析工具,相对于grep的查找,sed的编辑,awk在其对数据分析并生成报告时,显得尤为强大.简单来说awk就是把文件逐行的读入,以空格为默认分隔符将每行切片,切开的部分再 ...

  10. awk命令--update20150120

    简介 awk是一个强大的文本分析工具,把文件逐行读入,以空格为默认分隔符分割成field,切开的部分再进行各种分析处理. 模式和动作: 任何awk语句都是由模式和动作组成,模式部分决定动作语句何时触发 ...

随机推荐

  1. .net几种timer区别

    概述:.net框架不同名称控件都包含了各种timer,但每个timer有什么具体区别呢? 一.System.Threading private static void ThreadingTimer() ...

  2. vue-注册全局过滤器

    import Vue from 'vue'; import dayjs from 'dayjs'; const filters = { formatDate(date, format = 'YYYY- ...

  3. git和svn 及git使用&解决上线冲突

    一.svn git的工作流程 git 的工作流程图 二.git的基础使用 git 的安装 1.下载对应版本:https://git-scm.com/download 2.安装git:在选取安装路径的下 ...

  4. Qualcomm_Mobile_OpenCL.pdf 翻译-10-总结

    这篇文档主要是介绍了关于在Adreno GPUs上优化OpenCL代码的详细方法.文档中提供的大量信息能够帮助开发者理解OpenCL基础和Adreno结构,还有最重要的,掌握OpenCL优化技能. O ...

  5. (转) Delete/Truncate删除,释放表空间、降低高水位线、resize释放磁盘空间相关优化

    硬盘空间不足,打算删除数据库中的多余数据,但删除数据后,硬盘硬盘空间不能释放.[delete后用:alter table table_name move    truncate后用:alter tab ...

  6. gcc编译动态链接库

    以下是windows环境下用gcc编译动态链接库的尝试过程. 环境准备 编译使用的MinGW,64位的官网可以找到下载地址. 项目建立及代码编写 在任意地方新建一个目录,保存这个项目,然后新建一个c源 ...

  7. Codeforces 981 共同点路径覆盖树构造 BFS/DP书架&最大值

    A /*Huyyt*/ #include<bits/stdc++.h> #define mem(a,b) memset(a,b,sizeof(a)) #define pb push_bac ...

  8. CentOS 7安装MySQL 8——萌新超详细教程

          1.配置MySQL 8.0的安装源:   sudo rpm -Uvh https://dev.mysql.com/get/mysql80-community-release-el7-1.n ...

  9. VMware导入ova报错

    报错如下: 此主机支持Intel VT-x,但Intel VT-x处于禁用状态.   解决方案如下: 联想E75主机,重启按F1进入BIOS Advanced—>CPU setup—>In ...

  10. IPython的简单介绍

    量化投资与Python 目录: 一.量化投资第三方相关模块 NumPy:数组批量计算 Pandas:表计算与数据分析 Matplotlib:图表绘制 二.IPython的介绍 IPython:和Pyt ...