Linux常用命令——awk

awk 一种编程语言

语法格式:awk 【option】‘pattern{action}‘【file】... awk [选项] ‘条件{动作}‘ [文件] ...
注意:awk 命令及后面的选项和文件里,每个元素之间都要至少要有一个空格
选项说明:

参数选项 解释说明
-F 指定字符安分隔符
-v 定义或修改一个 awk 内部的变量
$ 取、引用
$1 第一个列
$0 整行
$NF 最后一行
$(NF-1) 倒数第二行
RS 每个记录读入的时候的分隔符(类似于换行符 \n)
NR 行号,记录的数
ORS 输出时候的分隔符

关系运算符

运算符 含义 示例
< 小于 x < y
<= 小于等于 x <= y
== 等于 x == y
!= 不等于 x != y
>= 小于 x < y
< 大于等于 x >= y
> 大于 x > y
~ 与正则表达式匹配 x~/y/
!~ 与正则表达式不匹配 x!~y

案例一:
awk 环境简介

案例二:
awk执行过程:

  1. awk 读入第一行内容
  2. 判断是否符合模式中的条件(如:NR>=2)
    a. 如果匹配则执行对应的动作(如:{print $0})
    b. 如果不匹配条件,继续读取下一行
  3. 继续下一行
  4. 重复过程 1-3,知道读取到最后一行(EOF:end of file)


    关于记录的简单说明:
  5. 大象放冰箱分几步?打开冰箱门,把大象放进去,关闭冰箱门。
  6. 对使用 NR、NF、$数字,配合调试你的 awk 命令。
  7. NR 存放着每个记录的号(行号)读取新行时候会自动 +1
  8. RS 是记录的分隔符,简单理解就是可以指定每个记录的结尾标志。
  9. 用 RS 代替 \n
  10. RS 作用就是表示一个记录的结束
  11. FS 标志着每个区域的结束


    awk 的基本结构
    awk BEGIN{coms} /pattern/{coms} END{coms}
    开始模块,/找谁/{干啥},结束模块
  12. BEGIN 和END 模块只能有一个,BEGIN{}BEGIN{} 或者 END{}END{}
  13. 找谁干啥模块,可以有多个(例如:NR==2{print $1} NR==5{print $0})
    案例三:
    参数 RS,NR 举例


    说明:RS 为空值时,在行手打印输出记录号,并打印出每一行 $0 的内容
    正则表达式简单举例

    注意:$1~ 表示匹配第一列(第一个区域),o{1,2} 表示条件有一个或两个 o,{print NR,$1,NF} 表示打印 行号,第一列,最后一列
    案例四:
    使用 awk 取出对应的端口号、

    统计文件里面的空行数量

    new 文件里面,以空格为分隔符,区域 3 大于 15,有多少行



    使用 awk 实现 1 加到 100 的值

原文地址:http://blog.51cto.com/12384628/2130109

时间: 2024-10-28 16:03:49

Linux常用命令——awk的相关文章

Linux常用命令awk

awk能够处理类似csv这种按行格式的数据,对每一行record按照-F指定的分隔符切割,然后处理.默认支持空格和\t分隔符 1.统计文件里某一列数据等于某个值的个数 cat djt10.log | awk -F ',' 'BEGIN{count=0;f=0} {if($1 == 1){count = count+1} else{f = f+1}} END{print count,f, count/f}' > 1-0_djt10.txt 2.拼接$1参数指定文件夹下的文件到一个大文件 for((

Linux常用命令大全

系统信息 arch 显示机器的处理器架构(1) uname -m 显示机器的处理器架构(2) uname -r 显示正在使用的内核版本 dmidecode -q 显示硬件系统部件 - (SMBIOS / DMI) hdparm -i /dev/hda 罗列一个磁盘的架构特性 hdparm -tT /dev/sda 在磁盘上执行测试性读取操作 cat /proc/cpuinfo 显示CPU info的信息 cat /proc/interrupts 显示中断 cat /proc/meminfo 校验

(转)linux常用命令

原地址:http://www.cnblogs.com/svage/p/3700122.html 1.删除目录及子目录下的 .svn目录 find . -type d -name ".svn" | xargs rm -rf 2./tmp 目录的权限 drwxrwxrwt rwt的意思是:对目录有执行权限,但不能删除,即sticky bit rwx : 可读可写可执行 4+2+1 3.改变群组.用户.权限 chgrp   群组名   改变的目录 groupadd -g gid gname

linux常用命令 、查看日志、web排查

linux常用命令 ps aux|grep xxx (比如 ps aux|grep tomcat ps aux|grep tomcat-portalvip ps aux|grep nginx 等) rpm -qa|grep xxx (查找系统有没有安装 比如 rpm -qa|grep mysql rpm -qa|grep MySQL rpm -qa|grep jdk 等) 强制卸载 rpm -e 上一步查找结果的内容 --nodeps 查看端口是否被占用 netstat -an|grep 端口

Linux常用命令收集

Linux常用命令:if.for.which.ps.grep.netstat.lsof.head.tail.sed.awk.cut.sort.uniq.dos2unix.find.xargs.kill) 一.linux查看占用内存/cpu最高的进程情况(注明:可以使用一下命令查使用内存最多的10个进程) 1.查看占用cpu最高的进程 ps aux|head -1;ps aux|grep -v PID|sort -rn -k +3|head 2.查看占用内存最高的进程 ps aux|head -1

linux常用命令技巧

原文地址 这篇文章来源于Quroa的一个问答<What are some time-saving tips that every Linux user should know?>-- Linux用户有哪些应该知道的提高效率的技巧.我觉得挺好的,总结得比较好,把其转过来,并加了一些自己的理解. 首先,我想告诉大家,在Unix/Linux下,最有效率技巧的不是操作图形界面,而是命令行操作,因为命令行意味着自动化.如果你看过<你可能不知道的Shell>以及<28个Unix/Linu

Linux常用命令小结(续)

20. mysql mysql --host=127.0.0.1 --port=3306 --database=test --user=test --password=test --default-character-set=utf8 21. 脚本求两个文件的相同集合 test1   test2 1           2 2           3 3           4 cat test1 test2 | sort | uniq -d (result: 2 3) cat test1 te

linux常用命令-2

晚上翻翻很久之前从网上down的各种资料,有些有用.下面是不知从哪弄来的txt文档,看看觉得挺好,下面的是原文. Linux 常用命令使用方法大搜刮管理提醒: 本帖被 haowubai 执行置顶操作(2009-02-06) Linux 常用命令使用方法大搜刮 1.# 表示权限用户(如:root),$ 表示普通用户 开机提示:Login:输入用户名 password:输入口令 用户是系统注册用户成功登陆后,可以进入相应的用户环境. 退出当前shell,输入:exit 2.useradd netse

三十、Linux常用命令(二)

系统信息 arch 显示机器的处理器架构(1) uname -m 显示机器的处理器架构(2) uname -r 显示正在使用的内核版本 dmidecode -q 显示硬件系统部件 - (SMBIOS / DMI) hdparm -i /dev/hda 罗列一个磁盘的架构特性 hdparm -tT /dev/sda 在磁盘上执行测试性读取操作 cat /proc/cpuinfo 显示CPU info的信息 cat /proc/interrupts 显示中断 cat /proc/meminfo 校验