awk的简单使用
来源:互联网 发布:如何给单片机烧录程序 编辑:程序博客网 时间:2024/05/17 02:28
awk 倾向于将一行分成数个字段来处理
awk '条件类型1{动作1}条件类型2{动作2}....' filename 动作有辅助命令用;隔开
awk工作流程是这样的:读入有'\n'换行符分割的一条记录,然后将记录按指定的域分隔符划分域,填充域, $0则表示所有域,$1表示第一个域,$n表示第n个域。默认域分隔符是"空白键" 或"[tab]键",所以$1表示登录用户, $3表示登录用户ip,以此类推。
last -n 5 | awk '{print $1 "\t" $3}'
cat /etc/passwd |awk -F ':' '{print $1}'
NF:每一行($0)拥有的字段总数
NR:目前awk所处理的是第几行数据
FS:目前的分隔符,默认是空格键
awk '{FS=":"}.....'
如果只是显示/etc/passwd的账户和账户对应的shell,而账户与shell之间以tab键分割
cat /etc/passwd |awk -F ':' '{print $1"\t"$7}'
如果只是显示/etc/passwd的账户和账户对应的shell,而账户与shell之间以逗号分割,而且在所有行添加列名name,shell,在最后一行添加"red,/bin/zsh"。
cat /etc/passwd |awk -F ':' 'BEGIN {print "name,shell"} {print $7","$1} END {print "/bin/zsh,red"}'
awk工作流程是这样的:先执行BEGING,然后读取文件,读入有/n换行符分割的一条记录,然后将记录按 指定的域分隔符划分域,填充域,$0则表示所有域,$1表示第一个域,$n表示第n个域,随后开始执行模式所对应的 动作action。接着开始读入第二条记录······直到所有的记录都读完.最后执行END操作。
搜索/etc/passwd有root关键字的所有行,并显示对应的name,shell
awk -F: '/root/{print $1","$7}' /etc/passwd
NF 浏览记录的域的个数
NR 已读的记录数
OFS 输出域分隔符
ORS 输出记录分隔符
RS 控制记录分隔符
ARGC 命令行参数个数
ARGV 命令行参数排列
ENVIRON 支持队列中系统环境变量的使用
FILENAME awk浏览的文件名
FNR 浏览文件的记录数
FS 设置输入域分隔符,等价于命令行 -F选项
awk -F ':' '{print "filename:" FILENAME ",linenumber:" NR ",columns:" NF",linecontent:"$0}' /etc/passwd
awk 'BEGIN {count=0;print "[start]user count is ", count} {count=count+1;print $0;} END{print "[end]user countis ", count}' /etc/passwd
统计某个文件夹下的文件占用的字节数
ls -l |awk 'BEGIN {size=0;} {size=size+$5;} END{print "[end]size is ", size}'
统计某个文件夹下的文件占用的字节数,过滤4096大小的文件(一般都是文件夹):
ls -l |awk 'BEGIN {size=0;print "[start]size is ", size} {if($5!=4096) {size=size+$5;}} END{print "[end]size is ", size/1024/1024,"M"}'
awk '条件类型1{动作1}条件类型2{动作2}....' filename 动作有辅助命令用;隔开
awk工作流程是这样的:读入有'\n'换行符分割的一条记录,然后将记录按指定的域分隔符划分域,填充域, $0则表示所有域,$1表示第一个域,$n表示第n个域。默认域分隔符是"空白键" 或"[tab]键",所以$1表示登录用户, $3表示登录用户ip,以此类推。
last -n 5 | awk '{print $1 "\t" $3}'
cat /etc/passwd |awk -F ':' '{print $1}'
NF:每一行($0)拥有的字段总数
NR:目前awk所处理的是第几行数据
FS:目前的分隔符,默认是空格键
awk '{FS=":"}.....'
如果只是显示/etc/passwd的账户和账户对应的shell,而账户与shell之间以tab键分割
cat /etc/passwd |awk -F ':' '{print $1"\t"$7}'
如果只是显示/etc/passwd的账户和账户对应的shell,而账户与shell之间以逗号分割,而且在所有行添加列名name,shell,在最后一行添加"red,/bin/zsh"。
cat /etc/passwd |awk -F ':' 'BEGIN {print "name,shell"} {print $7","$1} END {print "/bin/zsh,red"}'
awk工作流程是这样的:先执行BEGING,然后读取文件,读入有/n换行符分割的一条记录,然后将记录按 指定的域分隔符划分域,填充域,$0则表示所有域,$1表示第一个域,$n表示第n个域,随后开始执行模式所对应的 动作action。接着开始读入第二条记录······直到所有的记录都读完.最后执行END操作。
搜索/etc/passwd有root关键字的所有行,并显示对应的name,shell
awk -F: '/root/{print $1","$7}' /etc/passwd
NF 浏览记录的域的个数
NR 已读的记录数
OFS 输出域分隔符
ORS 输出记录分隔符
RS 控制记录分隔符
ARGC 命令行参数个数
ARGV 命令行参数排列
ENVIRON 支持队列中系统环境变量的使用
FILENAME awk浏览的文件名
FNR 浏览文件的记录数
FS 设置输入域分隔符,等价于命令行 -F选项
awk -F ':' '{print "filename:" FILENAME ",linenumber:" NR ",columns:" NF",linecontent:"$0}' /etc/passwd
awk 'BEGIN {count=0;print "[start]user count is ", count} {count=count+1;print $0;} END{print "[end]user countis ", count}' /etc/passwd
统计某个文件夹下的文件占用的字节数
ls -l |awk 'BEGIN {size=0;} {size=size+$5;} END{print "[end]size is ", size}'
统计某个文件夹下的文件占用的字节数,过滤4096大小的文件(一般都是文件夹):
ls -l |awk 'BEGIN {size=0;print "[start]size is ", size} {if($5!=4096) {size=size+$5;}} END{print "[end]size is ", size/1024/1024,"M"}'
0 0
- awk的简单使用
- Linux awk的简单使用
- sed和awk的简单使用
- shell脚本之awk的简单使用
- sed和awk的简单使用
- awk 的简单使用-查找进程pid
- linux中awk的简单使用
- sed,awk简单使用
- awk简单使用
- awk简单使用
- AWK简单使用
- Awk命令简单使用
- awk简单使用
- AWK简单使用
- 简单的awk
- awk简介及简单使用
- grep、sed和awk命令的简单使用
- Linux下文本分析工具awk的简单使用
- HTML TABLE 细边框样式 用HTML作为模板,JAVA导出PDF兼容table样式
- qq登录
- iometer 1.1.0 重要特性说明之O_DIRECT flag重新引入(OutStanding设置失效问题)
- lvs keepalived 安装配置详解
- centos7.0修改默认字符编码
- awk的简单使用
- ubuntu破解myeclipse
- 【Unity3d】WIN下Blender的快捷键及操作技巧
- 继续之前的Sharepoint Lookup
- 国外程序员整理的Java资源大全
- 多线程——Run Loop剖析(1)
- poj解题报告——1836
- 用户态和内核态堆栈
- hdu1047大数处理