AWK基础用法

AWK:

print

例子:给没个/etc/passwd下的用户都打招呼hello
答案:

awk '{print "hello:"$1}' /etc/passwd
内建变量
FS : 输入分隔符
OFS: 输出分隔符
RS : 行输入分隔符
ORS: 行输出分割符
NF : 字段数
NR : 行号数
FNR: 每个文件的行号数
ARGC: 参数个数
ARGV: 数组形式保存
printf
%c :显示字符的ASCII码
%d :显示十进制整数
%e :科学计数法显示
%f :显示浮点数
%g :以科学计数法显示浮点数
%s :显示字符串
%v :无符号整数
%% :显示%本身
修饰符:
%15s 行距离
-减号:左对齐
+加号:显示数值正整号
PATTERN
BEGAIN:开始处理一次
END :结束后执行一次
控制语句和数组
if( ){ } else { } 语句
for( ; ; ) { } 语句
while( ) { } 语句
for( in ) { }语句
例子:显示/etc/passwd文件中位于文件的第偶数行的用户名;并显示共有多少个这样的用户
答案:

awk -F: '{if (NR%2==0) {count++;print $1}} END {print "Total Users:"count" "}' /etc/passwd
例子:netstat -tan 打印tcp链接状态的统计数
答案:

netstat -tan | awk '{if(NR>2)count[$NF]++}END{for(i in count)print i,count[i]}'
例子:统计/etc/fstab文件中每个文件系统类型出现的次数
答案:

awk '/^[^#]/{count[$3]++}END{for(i in count) print i,count[i]}' /etc/fstab
例子:统计/etc/fatab文件中每个单词出现的次数
答案:

awk '{for(i=1;i<NF;i++){count[$i]++}}END{for(i in count) print i,count[i]}' /etc/fstab

原创文章,作者:z long,如若转载,请注明出处:http://www.178linux.com/76717

(0)
z longz long
上一篇 2017-05-22 19:24
下一篇 2017-05-22 20:25

相关推荐

  • Linux基础知识及常用命令

    pwd:printing working directory -显示当前工作目录            [root@edu tmp]# pwd          &nbs…

    Linux干货 2016-09-15
  • LAMP

    1、请描述一次完整的http请求处理过程; 一次完整的http请求处理过程: (1) 建立或处理连接:接收请求或拒绝请求; (2) 接收请求:接收来自于网络上的主机请求报文中对某特定资源的一次请求的过程; (3) 处理请求:对请求报文进行解析,获取客户端请求的资源及请求方法等相关信息; (4) 访问资源:获取请求报文中请求的资源; (5) 构建响应报文: (…

    Linux干货 2016-12-14
  • Linux第四周总结

    1、复制/etc/skel目录为/home/tuser1, 要求/home/tuser1及其内部文件的属组和其它用户均没有任何访问权限。 2、编辑/etc/group文件,添加组hadoop。 3、手动编辑/etc/passwd文件新增一行,添加用户hadoop, 其基本组ID为hadoop组的id号;其家目录为/home/hadoop。 4、复制/etc/…

    2017-07-24
  • linux磁盘管理及文件系统介绍

        硬盘是计算机必备组成部分,现在的硬盘分固态硬盘和传统机械硬盘,这里要介绍的是传统机械硬盘。     一.硬盘最基本结构         1.硬盘是由坚硬金属材料制成的涂以磁性介质的盘片,不同容量硬盘的盘片数不等。…

    Linux干货 2016-06-22
  • 20160802学习笔记

    useradd相关补充:      1.新建一个用户创建时的一些默认权限在/etc/default/useradd配置中      2.新建用户家目录的过程实际就是将/etc/skel中的所有文件,拷贝到新建用户的/home下,并更改为改用户的用户名   &n…

    Linux干货 2016-08-03
  • Linux发行版的基础目录名称、功能及目录的命名法则

    Linux发行版的基础目录名称、功能及目录的命名法则 基础目录名称及功能 /lib 32位系统的基础共享库文件和可装载的内核模块,用于为/bin和/sbin下的程序提供共享库,并为内核提供内核模块 /lib64 64位系统的基础共享库文件,用于为/bin和/sbin下的程序提供共享库 /etc 系统程序的配置文件 /bin 用户命令的程序文件,所有用户可用 …

    Linux干货 2017-07-02