linux命令——awk
来源:互联网 发布:php is a 编辑:程序博客网 时间:2024/06/08 14:57
今天被面试有个问题一脸懵逼……(。ì _ í。)
原因就在于上次总结linux常用命令时候忘记扩展一个知识点了!
awk……这是啥 没用过aaaaa…… But,不会不怕 学就可以了嘛~
一、awk是什么
linux下的文本、数据处理工具
二、awk使用方式
1.命令行方式 (三、里面会点详细说明)
awk [-F field-separator] + 'awk命令' + awk_test.txt
[-F域分隔符]可选,文件的每一行中,由-F分开的每一项称为一个域。
2.shell脚本方式
将所有的awk命令插入一个文件,并使awk程序可执行,首行使用#!/bin/awk
3.将所有的awk命令插入一个单独文件,然后调用
awk -f script.awk awk_test.txt
其中,-f选项加载script.awk中的awk脚本
三、使用语法
awk [-F|-f|-v] ‘BEGIN{} //{command1; command2} END{}’ file
BEGIN:初始化代码块,在对每一行进行处理之前,初始化代码,主要是引用全局变量,设置FS分隔符
//:正则或字符串,匹配代码块
{}:包含一条或多条命令,多条命令使用分号分隔
END:结尾代码块,在对每一行进行处理之后再执行的代码块,主要是进行最终计算或输出结尾信息
#常用内置变量(反正我是背不下来 会用就行了。。。) ARGC 命令行参数个数 ARGV 命令行参数排列 ENVIRON 支持队列中系统环境变量的使用 FILENAME awk浏览的文件名 FNR 浏览文件的记录数*FS 设置输入域分隔符,等价于命令行 -F选项*NF 经过-F分割之后,每行的个数*NR 行数*OFS 输出域分隔符(print $1,$2时使用) ORS 输出记录分隔符 RS 控制记录分隔符
#eg:awk_test.txt11111 --22222 --33333--4444--5555--666611111, 22222, 33333-- 4444-- 5555-- 666611111: 22222: 33333-- 4444-- 5555-- 6666
1、-F是什么鬼,$n是什么
#awk -F'-- ' '{print $1 $2}' awk_test.txt#$1和$2代表第一列、第二列(默认每行按空格分割,这里按'-- '分割,$1 $2为分割后的)11111 --22222 --33333--4444--5555--666611111, 22222, 33333444411111: 22222: 333334444
#awk -F'-- ' '{print $1,$2}' awk_test.txt11111 --22222 --33333--4444--5555--6666 11111, 22222, 33333 444411111: 22222: 33333 4444
敲黑板:
i、print $1 $2 和 print $1,$2 是不一样的!
空格这种:连续输出
逗号这种:输出后按空格分割,如果想修改,使用awk -F’– ’ ‘{print $1,$2}’ OFS=’……’ awk_test.txt
ii、$0代表一行 $n 代表-F分割之后的第n段
2、应用
2.1 输出第一列的和:
awk 'BEGIN {count=0} {count=count+$1;} END{print count}' awk_test.txt#输出:33333
2.2.1 打印某个文件夹下的文件占用的字节数:
ls -l |awk '{print $5}'
2.2.2 统计某文件夹下的文件占用的字节数,输出文件大小>1024Byte的文件(一般都是文件夹),输出这些文件个数:
ls -l |awk 'BEGIN {size=0;count=0;print "start"} {if($5>1024){count=count+1; print"size: ", $5/1024, "K";}} END{print "[end]count=", count}'#输出如下:startsize: 1.46094 Ksize: 1.92578 K[end]count= 2
- linux命令——awk
- Linux命令——awk
- linux命令——awk
- Linux——awk命令详解
- Linux文本处理—awk gawk命令的使用
- linux awk 命令应用
- linux命令之awk
- Linux awk命令详解
- Linux awk命令详解
- linux shell awk 命令
- linux awk 命令应用
- Linux awk命令详解
- Linux awk命令详解
- Linux awk命令详解
- Linux awk命令详解
- Linux awk 命令
- Linux awk 命令 说明
- Linux awk 命令 说明
- js判断输入框内容格式
- Struts2使用小问题-NoSuchFieldException
- linux进程间的通信
- Invalid classpath publish/export dependency /common. Project entries not supported
- JENKINS: Xvnc does not set the DISPLAY environment
- linux命令——awk
- DQL,DML,DDL,DCL语言
- JAVA中IO流之FileWriter
- 设计模式----单例设计模式
- 远程RMI调用接口时传JSON类型参数失败的解决办法
- UI相关项目开源库大汇总(转载)
- SSH 远程执行任务
- HTML5 FormData多文件上传
- 快捷键总结