运维必备技能

概述:

  1.awk是一种编程语言,用于linux/unix下对文本和数据进行扫描。处理数据来源:标准输入、文件、管道。

   2.linux中常用的awk编译器版本有mawk,gawk。Redhat使用的是gawk,Ubuntu使用的是mawk.

原理:

   1. 逐行扫描文件,寻找匹配你指定模式的行,并在这些行上执行你指定的操作;

   2. awk 基本结构包括模式匹配(用于找到要处理的行)和处理过程(即处理动作)。

   3. awk 有两个特殊的模式:BEGIN 和 END,他们被放置在没有读取任何数据之前以及在所有数据读取完成以后执行。

提示:awk 读取文件内容的每一行时,将对比改行是否与给定的模式相匹配,
如果匹配则执行处理过程,否则对该行不做任何处理。
如果没有指定处理脚本,则把匹配的行显示到标准输出,即默认处理动作是 print 打印行;
如果没有指定模式匹配,则默认匹配所有数据。  

awk 基本语法格式

awk程序脚本用一对花括号来定义,必须将脚本命令放在两个花括号{}中。此外,由于awk假定程序脚本是单个文本字符串,因此必须还要将脚本放到单引号中。
下面的例子在命令行上指定了一个简单的Hello World例子:
$ awk '{print "Hello World!"}'

1. 格式: awk [ POSIX or GNU style options ] -f program-file [ -- ] file ...

注释:POSIX or GNU style options 表示 gawk 支持 POSIX 以及 GNU 两种选项;
-f 后接脚本文件;file 表示准备处理的文档名称。

2、awk常用选项参数

  -F th:指定分隔符为fs(默认分隔符为空格或制表符);

  -W compact or --compat, -W traditional or --traditional
  在兼容模式下运行awk。所以gawk的行为和标准的awk完全一样,所有的awk扩展都被忽略。

  -v a=1:设置一个变量a,值为1

  -f awk.sh :从脚本文件awk.sh中读取awk指令,以取代在命令参数中输入处理脚本。

  

3. awk内置变量

  ARGC:       命令行参数个数 
  FILENAME:   当前输入文档的名称 
  FNR:        当前输入文档的当前记录编号,尤其当有多个输入文档时有用
  NR:         输入流的当前记录编号 
  NF:         当前记录的字段个数 
  FS:         字段分隔符 
  OFS:        输出字段分隔符,默认为空格 
  ORS:        输出记录分隔符,默认为换行符\n 
  RS:         输入记录分隔符,默认为换行符\n

shell脚本之awk(一)的更多相关文章

  1. SHELL脚本之awk妙用

    对于一个sougou文本文件,解压后大概4G,要求在其基础上切出第一列时间年月日时分秒增加在列中,作为hive的一个索引.先将文件head一下展示格式: [root@Master date]# hea ...

  2. Shell脚本之awk篇

    目录:一.概述二.awk基本语法格式三.awk基本操作四.awk条件及循环语句五.awk函数六.awk演示示例(源自于man手册) 一.概述 1. 产品概述: awk是一种编程语言,用于在linux/ ...

  3. Shell脚本之awk详解

    一.基本介绍 1.awk: awk是一个强大的文本分析工具,在对文本文件的处理以及生成报表,awk是无可替代的.awk认为文本文件都是结构化的,它将每一个输入行定义为一个记录,行中的每个字符串定义为一 ...

  4. shell脚本,awk实现跳过文件里面的空行。

    1.用awk '{if(!NF ){next}}1' file11 实现对文件里面的空行进行跳过操作,并输出结果. 2. awk '{if(!NF || /^#/){next}}1' file11 实 ...

  5. shell脚本,awk里面的BEGIN讲解。

    解释: BEGIN{}这个特殊的pattern最常用的就是 变量赋值. BEGIN这个pattern就是文件没开始读的时候 执行 awk 'BEGIN{FS=":";OFS=&qu ...

  6. shell脚本,awk利用NF来计算文本显示的行数。

    解释: 1.awk 'NF{a++;print a,$0;next}1' file4 首先判断NF是否存在值,第一行第二行第三行第四行都存在,进行执行后面的输出,输出后碰到next后,就结束了后面的操 ...

  7. shell脚本,awk替换{}里面的内容

    如何将oxo{axbxc}oxo{dxexf}oxo里面的{}里面的x 替换为; 用awk实现 [root@localhost 09-30]# echo 'oxo{axbxc}oxo{dxexf}ox ...

  8. shell脚本,awk常见初始化变量的题目。

    文件 内容如下 clone=line1gb=line1gi=line1lib=line1gb=line2gi=line2lib=line2clone=line3gb=line3gi=line3lib= ...

  9. shell脚本,awk如何处理文件中上下关联的两行。

    文件d.txt如下内容 ggg 1portals: 192.168.5.41:3260werew 2portals: 192.168.5.43:3260 如何把文件d.txt内容变为如下内容 ggg  ...

随机推荐

  1. Babel快速入门

    作者:姜瑞涛 Github仓库:https://github.com/jruit/babel-tutorial 博客:姜瑞涛的官方网站 原文链接:https://www.jiangruitao.com ...

  2. IE,Google Chrome等浏览器,调试模式在控制台可以手动调用页面的方法来调试

    IE,Google Chrome等浏览器,调试模式在控制台可以手动调用页面的方法来调试,这种方式也可以进断点.

  3. K - 回转寿司(值域段数(板题) + 动态开点)

    回转寿司 Description 酷爱日料的小Z经常光顾学校东门外的回转寿司店.在这里,一盘盘寿司通过传送带依次呈现在小Z眼前.不同的寿 司带给小Z的味觉感受是不一样的,我们定义小Z对每盘寿司都有一个 ...

  4. WPF使用 Gmap.NET 绘制极坐标运动轨迹

    大家好,已经很久没有更新了,今天写一篇关于WPF 使用 Gmap.NET 相关的,网上很多Winform的很**,所以我给Wpf进行一些补充.虽然它已经很久没有更新了,但是也只能用这个了.没别的好选择 ...

  5. Gang Of Four的23中设计模式

    Gang Of Four的23中设计模式 标签(空格分隔): 设计模式 1. 根据目的来进行划分 根据目的进行划分可以分为创建型模式, 结构型模式和行为模式三种. 1.1 创建型模式 怎样创建对象, ...

  6. 第一讲:Git分区,配置与日志

    前言 曾经听到过这样一句话:不会git就不要敲代码了.细细品味确实有其中的道理,可能是当事人代码被强行覆盖后的叹息吧! 因此,为了避免这种情况,接下来我们就一起来好好学习git的相关知识吧!不怕你不会 ...

  7. Hadoop(四):HDFS读数据的基本流程

    HDFS读数据的流程 shell发送下载请求 NameNode检测文件系统,查找a的元数据(block和block所在的位置信息) 返回元数据给shell,返回的元数据会排序,排序规则: 拓扑距离近排 ...

  8. escape和unescape知识点

    decodeURI() 函数可对 encodeURI() 函数编码过的 URI 进行解码. encodeURI() 函数可把字符串作为 URI 进行编码 <script> var uri= ...

  9. UC接口文档

    UC接口文档 一.功能描述 提供同步登录.退出.注册等相关接口,可以实现用户一个账号,在一处登录,全站通行. 二.测试环境UC地址 http://s1.p5w.net/uc/ 三.相关接口 UC_AP ...

  10. JS数据结构与算法 - 剑指offer二叉树算法题汇总

    ❗❗ 必看经验 在博主刷题期间,基本上是碰到一道二叉树就不会碰到一道就不会,有时候一个下午都在搞一道题,看别人解题思路就算能看懂,自己写就呵呵了.一气之下不刷了,改而先去把二叉树的基础算法给搞搞懂,然 ...