awk高级应用

  1. IF条件判断

    语法一

    if (表达式)

    动作1

    else

    动作2

    语法二

    if (表达式) 动作1;else 动作2

    #判断boot分区可用容量小于20MB时报警,否则显示OK

    df |grep ‘boot‘ |awk ‘{if($4<20000) print "Alart";else print "OK"}‘

  2. while循环

    语法一

    while (条件)

    动作

    例子:

    x=1

    while (i<10){

    print $1

    }

    例子:

    awk ‘i=1{} BEGIN { while(i<=10) {++i;print i} }‘ test.txt

    语法二

    do

    动作

    while(条件)

    例子:

    awk ‘BEGIN { do {++x;print x} while (x<=10) }‘ test.txt

  3. for循环

    for (变量; 条件;计数器)

    动作

    例子:

    awk ‘BEGIN {for(i=1;i<=10;i++) print i}‘ test.txt
    awk ‘BEGIN {for(i=10;i>=1;i--) print i}‘ test.txt

  4. Break与continue

    break    跳出循环

    continue 终止当前循环

    for (i=1;i<=10;i++) {

    if (i=5)

    continue

    print i

    }

    for (i=1;i<=10;i++) {

    if (i=5)

    break

    print i

    }

  5. 函数

    5.1 rand()函数

    awk ‘BEGIN{print rand();print srand();print srand()}‘ test.txt

    5.2 gsub(x,y,z)函数

    作用在字符串z中使用字符串y替换与正则表达式x相匹配所有字串,z默认为$0

    awk -F: ‘gsub(/root/,"ccc",$0) {print $0}‘ /etc/passwd
      ccc:x:0:0:ccc:/ccc:/bin/bash

    5.3 sub(x,y,z)函数

    作用在字符串z中使用字符串y替换与正则表达式x相匹配的第一个字串,z默认为$0

    awk -F: ‘sub(/ccc/,"root",$0) {print $0}‘ /etc/passwd
      ccc:x:0:0:ccc:/ccc:/bin/bash

    5.4 length(z)函数

    作用:显示test.txt文档中每行的字符长度:

    awk ‘{print length()}‘ /usr/local/src/allen/test.txt

    5.5 getline()函数

    df -h | awk ‘{if(NF==1) {getline;print $3};if(NF==6) print $4}‘

    df -h|awk ‘BEGIN{print "Disk Free:"} \

    {if(NF==1) {getline;print $3};if(NF==6){print $4}}‘

awk高级应用

时间: 2024-10-16 23:05:23

awk高级应用的相关文章

[CentOS 7系列]grep/sed/awk高级扩展

在上一帖的实战中,我们用到了grep的"-Po"的用法.首先,我们来看看这几个参数的含义:       -P, --perl-regexp               Interpret  PATTERN as a Perl regular expression.  This is highly               experimental and grep -P may warn of unimplemented features.              -o, --on

sed及awk命令的使用

sed命令 sed是一种流编辑器,它是文本处理中非常中的工具,能够完美的配合正则表达式使用,功能不同凡响.处理时,把当前处理的行存储在临时缓冲区中,称为"模式空间"(pattern space),接着用sed命令处理缓冲区中的内容,处理完成后,把缓冲区的内容送往屏幕.接着处理下一行,这样不断重复,直到文件末尾.文件内容并没有 改变,除非你使用重定向存储输出.Sed主要用来自动编辑一个或多个文件:简化对文件的反复操作:编写转换程序等. 命令格式 sed [options] 'comman

Awk使用及网站日志分析

Awk使用及网站日志分析 Awk简介 概述 awk是一个强大的文本分析工具,相对于grep的查找,sed的编辑,awk在其对数据分析并生成报告时,显得尤为强大.简单来说awk就是把文件逐行的读入,以空格为默认分隔符将每行切片,切开的部分再进行各种分析处理. awk有3个不同版本: awk.nawk和gawk,未作特别说明,一般指gawk. awk程序的报告生成能力通常用来从大文本文件中提取数据元素并将它们格式化成可读的报告.最完美的例子是格式化日志文件.awk程序允许从日志文件中只过滤出你想要看

awk说明书(转)

转:http://www.chinaunix.net/old_jh/7/16985.html 什么是awk? 你可能对UNIX比较熟悉,但你可能对awk很陌生,这一点也不奇怪,的确,与其优秀的功能相比,awk还远没达到它应有的知名度.awk是什么?与其它大多数UNIX命令不同的是,从名字上看,我们不可能知道awk的功能:它既不是具有独立意义的英文单词,也不是几个相关单词的缩写.事实上,awk是三个人名的缩写,他们是:Aho.(Peter)Weinberg和(Brain)Kernighan.正是这

awk程序设计语言之-awk基础

awk程序设计语言之-awk基础 1 http://man.linuxde.net/ 2 7 8 常用工具命令之awk命令 9 awk是一种编程语言,用于在Linux/Unix下对文本和数据处理.数据可以来自标准输入(stdin).一个或多个文件,或其他命令的输出.它支持用户自定义函数和动态正则表达式 10 等先进功能,是Linux/unix下的一个强大编程工具.它在命令行中使用,但更多是作为脚本来使用,awk有很多内建功能,比如数组.函数等,这是它和c语言的相同之处,灵活性 11 是awk最大

awk 的一些用法

awk,我觉得是Linux里面处理文本最精妙的命令,它是一个行处理的命令,它最初级的用法是:给定一些简单的pattern,然后按照这个pattern 去搜索匹配的行.它的高级用法是用awk来编程,除了原来的匹配字符串这个功能之外,还可以做一些统计,替换,数学计算的功能, 甚至可以编写自定义的函数,甚是神奇. 1. AWK 初级用法 awk 'pattern' filename awk '{action}' filename awk 'pattern {action}' filename //找到

(转载)(收藏)Awk学习详细文档

awk命令 本文索引 [隐藏] awk命令格式和选项 awk模式和操作 模式 操作 awk脚本基本结构 awk的工作原理 awk内置变量(预定义变量) 将外部变量值传递给awk awk运算与判断 算术运算符 赋值运算符 逻辑运算符 正则运算符 关系运算符 其它运算符 运算级优先级表 awk高级输入输出 读取下一条记录 简单地读取一条记录 关闭文件 输出到一个文件 设置字段定界符 流程控制语句 条件判断语句 循环语句 while语句 for循环 do循环 其他语句 数组应用 数组的定义 数组相关函

Unix awk使用手册

Unix awk使用手册(第二版) 池中龙 作者的话: <UNIX AWK使用手册>是我几个月前的作品了,回过头来看,这篇文章实在是很粗燥,因当时我写作并上传这个作品时实在是太忙了,没有对文章的质量进行很好的检查,心里老觉得有愧于网友的厚爱,于是趁闲赶忙重写一遍,虽然不一定会有很大的改观,但质量是肯定要好一点的,唯如此,我的良心上才好受一点,呶,下面就是我的修改稿,各位老友请与第一版相比一下,看是否有所进步! 这次改写仍然保留了原有的风格:正文由浅入深,文后附上了大量的相关资料,这样做的原因是

六周第三次课(1月17日) 9.6/9.7 awk

六周第三次课(1月17日)9.6/9.7awk ==================================================================================================================================================================================================================================