`
shixiaomu
  • 浏览: 383909 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

awk 学习笔记

阅读更多
用awk比较多,以下几个是常用的稍微高级一点的用法

1、同时指定多个分割符
   这时应该把分隔符写成放到方括号中,如$awk -F'[ :\t]' '{print $1,$3}'  test 

此时指定了空格,:号,tab三个作为分隔符


2、awk的key的变态用法
   awk '{a[$1,"\t", $2] += $4} END {for (uin in a) printf("%s\t%d\n", uin, a[uin])  }'  test
   用$1"\t"$2组成一维数组的key,这样可以用这种方式来处理很多复杂的二维数据逻辑


3、awk 的范围模板
   范围模板匹配从第一个模板的第一次出现到第二个模板的第一次出现之间所有行。如果有一个模板没出现,则匹配到开头或末尾。
  
   如$ awk '/root/,/mysql/' test将显示root第一次出现到mysql第一次出现之间的所有行。

4、awk的重定向
   awk 可使用shell的重定向符进行重定向输出,如:$ awk '$1 = 100 {print $1 > "output_file" }' test。上式表示如果第一个域的值等于100,则把它输出到output_file中。也可以用>>来重定向输出,但不清空文件,只做追加操作。

   这样可以利用重定向,可以把不同的结果集写入到不同的文件里
   比如,我经常要跑出vip1,2,3,4,5,6的6份文件,那么就可以写一个脚本,一次性都跑出来了


5、 awk -F"|" 'NR == FNR { a[$1] = $2 } NR > FNR { if (a[$1]!=""){ a[$1] = $2 - a[$1]; if(a[$1] > 0 && $2 == 2) print $0;} }' test test1
    还有涉及2个文件的时候,NR,FNR一起用,也比较少见的
分享到:
评论

相关推荐

    awk 学习笔记加例子

    **awk学习笔记与实例解析** awk 是一种强大的文本分析工具,尤其在Linux和Unix系统中广泛使用。它允许用户通过模式匹配和处理规则对输入数据进行操作,特别适合于处理结构化的文本文件,如日志文件、配置文件等。本...

    PDF电子书《Awk学习笔记2010修改版》

    ### PDF电子书《Awk学习笔记2010修改版》相关知识点 #### AWK简介 AWK是一种强大的脚本语言,由Alfred V. Aho、Peter J. Weinberger和Brian W. Kernighan在1977年设计并实现。这三位计算机科学家的名字首字母合成了...

    awk学习笔记

    awk学习笔记主要涵盖了awk编程语言的基础知识和常用功能。awk是一种强大的文本分析工具,尤其在Linux/Unix环境下广泛使用。它能够处理标准输入、文件或其它命令的输出,通过模式匹配对文本进行分析和处理。 1. **...

    awk学习笔记(简单易学)

    ### awk学习笔记精要 #### 1. awk简介 awk是一种功能强大的文本处理语言,主要用于在Linux/Unix环境中处理文本和数据。它能够从标准输入、文件或其它命令的输出中提取并处理数据,支持自定义函数和动态正则表达式...

    linux awk学习笔记

    `awk`的学习需要结合实际案例进行,通过编写和运行脚本来熟悉其用法和功能。 总结,`awk`是Linux文本处理的重要工具,其灵活性和强大的功能使其在数据分析、日志分析等领域有着广泛的应用。通过深入学习和实践,...

    awk学习笔记,从论坛整理而来

    `awk` 是一种强大的文本分析工具,常用于处理和解析结构化的文本文件,如日志文件、配置文件等。在Linux和Unix系统中,`awk` ...通过不断地实践和学习,你将能够有效地利用 `awk` 解决日常工作中遇到的文本处理问题。

    linux下AWK学习笔记

    本笔记将详细介绍AWK的基本概念、语法、命令选项以及常用的特性。 ### 1. AWK简介 AWK是由三位开发者的首字母命名的——Alfred V. Aho、Peter J. Weinberger和Brian W. Kernighan。它是一种内置了多种功能的语言,...

    AWK学习笔记.doc

    本笔记主要涵盖了AWK的基础知识和高级特性,旨在帮助读者理解和掌握这一实用工具。 **一.1 什么是AWK?** AWK是由Aho、Weinberger和Kernighan三位计算机科学家开发的,它的名字就是由他们的姓氏首字母组成的。AWK是...

    awk学习笔记(学习awk编程的好帮手)

    awk是一种强大的文本分析工具,广泛应用于Linux和Unix系统中。...学习awk能够极大地提升在Linux和Unix环境下处理文本数据的能力。通过深入理解和实践,你可以利用awk解决各种数据处理挑战,提高工作效率。

    awk学习笔记.pdf

    AWK是一种编程语言,用于在Linux环境下对文本和数据进行处理和分析。它是许多UNIX系统中的标准工具,并且是文本处理的强大工具。AWK通过模式匹配来处理文本文件,其中可以指定一系列规则,称为模式和动作,来对输入...

    Awk学习笔记和指南

    awk 是一种编程语言,用于在linux/unix下对文本和数据进行处理。数据可以来自标准输入、一个或多个文件,或其它命令的输出。它支持用户自定义函数和 动态正则表达式等先进功能,是linux/unix下的一个强大编程工具。...

    sed与awk(第二版)学习笔记

    sed与awk(第二版)学习笔记

    Awk学习笔记

    1. awk简介 2. awk命令格式和选项 2.1. awk的语法有两种形式 2.2. 命令选项 3. 模式和操作 3.1. 模式 3.2. 操作 4. awk的环境变量 5. awk运算符 6. 记录和域 6.1. 记录 6.2. 域 6.3. 域分隔符 7. gawk专用...

    sed awk学习

    sed awk 学习笔记 SED 是一个“非交互式”的面向字符流的编辑器,它可以在一个地方指定所有的编辑指令,然后通过文件传递一次来执行他们。但是它在每次多于一行的处理能力方面有限制。SED 的优点是可以批量处理文件...

    awk学习的相关内容

    文件名`awk学习-20101008.doc`可能包含了作者在2010年10月8日整理的awk学习笔记,涵盖了基本语法、常用命令和实战案例。可能包括以下内容: 1. **基本语法**:介绍awk的基本结构,如模式-动作对,以及如何指定输入...

Global site tag (gtag.js) - Google Analytics