`
TonyLee0329
  • 浏览: 31336 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

AWK工具学习(一)-awk介绍

阅读更多
任何awk语句都由模式和动作组成,模式驱动动作触发事件,动作执行对输入行的处理
awk支持'?'、'+'两个扩展元字符,而grep和sed并不支持
A.1 举个小例子,演示awk的使用(以下是全部的操作过程)
[lidc@hd66 awk-experiment]$ touch input
[lidc@hd66 awk-experiment]$ awk '/^$/{print "this is a blank line"}' input
[lidc@hd66 awk-experiment]$ cat input 
1.[lidc@hd66 awk-experiment]$ echo '' > input 
[lidc@hd66 awk-experiment]$ cat input 

2.[lidc@hd66 awk-experiment]$ awk '/^$/{print "this is a blank line"}' input
this is a blank line
3.[lidc@hd66 awk-experiment]$ echo 'test by tony' >input
[lidc@hd66 awk-experiment]$ cat input 
test by tony
4.[lidc@hd66 awk-experiment]$ awk '/^$/{print "this is a blank line"}' input
[lidc@hd66 awk-experiment]$ 

解释:以上是判断输入文件是不是空行的一个例子,1处输入为空,所以执行2后输出'this is a blank line'
3处输入了非空数据,所以在执行4的时候未输出

另外命令行模式下,如果没有指定输入文件将从命令行读取相关文本
[lidc@hd66 awk-experiment]$ awk '/^$/{print "this is a blank line"}' 

this is a blank line

this is a blank line

this is a blank line

A.2 awk编程模型
awk程序由一个主输入循环维持,主循环依次读取文件行,程序员只需要对行进行操作,打开文件、关闭文件的操作都由主循环管理

awk还定义了两个特殊的字段:BEGIN和END。BEGIN用于在未读取文件行之前执行。上例子:
[lidc@hd66 awk-experiment]$ awk 'BEGIN{print "joke"} /^$/{print "this is a blank line"}END{print "the end"}' input
joke
this is a blank line
the end
[lidc@hd66 awk-experiment]$ cat input 
test by tony

[lidc@hd66 awk-experiment]$

A.3 调用方法
简单说:
1. 命令行执行
awk  [-F 域分隔符] 'awk程序段' 输入文件
hdfs cat /user/ddclick/visitpath-v2_2013-02-18/step_dict/part-* | awk -F~==~ '{print $1}' > urls

2.使用-f调用
awk -f awk脚本文件 输入文件

3.设置脚本为可执行,然后直接执行
./awk脚本文件 输入文件
0
0
分享到:
评论

相关推荐

    AWK语言学习资料--基础知识

    AWK是一种强大的文本分析工具,尤其在处理结构化文本文件如日志、配置文件时,其强大之处得以显现。在Linux和Unix环境中,AWK常用于数据处理和报告生成。以下将详细介绍AWK语言的基础知识及其重要性。 1. **基本...

    awk学习手册--unix 系统学习

    本书是一部针对初学者的awk编程教程,旨在帮助读者快速掌握awk这一强大的文本处理工具。awk是一种在Unix和类似操作系统如Solaris中广泛使用的编程语言,特别适合处理结构化的数据文件,例如CSV或TSV格式的数据。它以...

    MOXA_AWK-3121配置方法及要点说明

    本文将详细介绍 MOXA AWK-3121 的配置方法及要点说明。 一、Web 功能配置 MOXA AWK-3121 的 web 功能配置主要包括三个部分:IP 网络参数、工作模式选择和功率增强。 1. IP 网络参数:在 web 配置页面中,可以设置...

    awk用法小结--有关awk的材料

    **awk** 是一款非常强大的文本处理工具,尤其适用于处理结构化的文本文件,比如那些按照行和列组织的数据。相较于 **sed**,**awk** 提供了更为丰富的编程功能,能够进行复杂的文本处理并生成复杂的报表输出。 ####...

    AWK-file.rar_awk_awk tcl_delay awk_jitter awk _jitter ns-2

    7. **文件分析**: "AWK-file"很可能包含一系列的脚本或报告,这些脚本使用AWK语言解析和处理NS-2模拟输出的数据,从而得出网络性能的量化指标。 8. **性能优化**: 使用AWK进行这样的分析可以帮助网络工程师识别性能...

    Oracle ass.awk工具

    ass.awk工具用在数据库hang住时分析收集到的systemstate所用,可以清晰明了的查看systemstate中的信息; 命令简单: $ awk -f ass1033.awk [trace_name_file] 在系统hung的时候,systemstate基本等同于hanganalyze...

    awk教程--别人家的笔记

    - **定义**:`awk`是一种用于文本数据处理的强大工具,属于解释型编程语言。 - **用途**:主要用于数据分析、报告生成等场景,尤其适用于处理结构化的文本文件。 #### 二、awk的工作流程 - **读取(Read)**:`awk...

    awk手册中文版-全面实用

    但是,awk语言也有一些缺陷,如学习门槛较高、语法较复杂等,因此需要我们认真地学习和实践。 因此,本手册将从基本概念到高级特性,对awk语言进行了详细的介绍和解释,以帮助读者快速地掌握awk语言的使用和应用。

    AWK使用手册 介绍在linux如何使用awk工具

    - 大多数Linux发行版默认包含了AWK工具。 - 如果系统未安装,可以通过FTP或在线资源下载安装包: - `phi.sinica.edu.tw:/pub/gnu` - `ftp.edu.tw:/UNIX/gnu` - `prep.ai.mit.edu:/pub/gnu` #### 四、AWK的工作...

    awk用法小结-unix

    awk是一种强大的文本分析工具,由Alfred V. Aho、Peter J. Weinberger和Brian W. Kernighan三位计算机科学家开发。它最初于1977年完成,并在1985年发布了增强功能的新版本。awk语言因其简洁、灵活和高效而受到广泛...

    AWK-4121介绍

    AWK-4121是一款专为工业级应用设计的室外无线接入点/AP、网桥及客户端三合一设备。它适用于不易布线、布线成本较高或者需要在移动TCP/IP网络环境中使用的场景。 #### 二、技术特性 - **兼容性**:符合IEEE802.11a/b...

    all-awk.rar_All.awk_NS2仿真_all awk_awk_awk-scripts

    总之,"all-awk.rar"提供的"All.awk"脚本是NS2仿真数据分析的一个实用工具,它利用AWK的强大功能,简化了对复杂网络模拟数据的处理过程。对于网络研究人员和工程师来说,掌握AWK和NS2的结合使用,不仅可以提高工作...

    awk教程-awk教程.rar

    awk是一种强大的文本分析工具,广泛应用于Linux和Unix系统中,用于处理结构化数据,如CSV、TSV格式的文件。它通过模式匹配和动作来处理输入流中的每一行,允许用户定制复杂的文本处理逻辑。下面将详细介绍awk的基本...

    sed and awk 101 hacks.pdf

    Sed和Awk是UNIX和Linux系统中极为重要的流编辑器和文本处理工具,它们能够通过简单的命令或脚本高效处理文本文件,实现复杂的文本转换和报告生成。接下来,我们将根据提供的文件内容详细地说明Sed和Awk的关键知识点...

    awk知识文档学习

    Awk的灵活性和强大功能使其成为处理和分析日志文件、数据文件的理想工具。 ### 8. Awk学习资源 - **教材**: 可以参考《UNIX Shell范例精解》(第4版)等书籍。 - **在线文档**: GNU Awk官方手册和相关的在线资源...

    awk 工具用法说明

    ### awk工具用法详解 #### 一、awk简介与基本语法 `awk`是一种强大的文本处理工具,在Linux和Unix环境中非常常见。它主要用于提取、分析和处理文本文件中的数据。`awk`支持复杂的条件判断与循环操作,可以方便地...

    sed awk学习

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

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

    `awk` 是一种强大的文本分析工具,常用于处理和解析结构化的文本文件,如日志文件、配置文件等。在Linux和Unix系统中,`awk` 提供了一种灵活的方式来提取、过滤和处理数据。本篇文章将深入讲解 `awk` 的基本用法和...

    GAWK-Effective AWK Programming - GNU Awk编程经典

    GNU Awk,又称GAWK,是一种强大的文本处理工具,它允许用户以一种简单而有效的方式在文本文件中执行复杂的模式匹配、数据提取、数据转换和报告生成。《GAWK: Effective AWK Programming - GNU Awk编程经典》是一本...

Global site tag (gtag.js) - Google Analytics