1.awk是什么和上一节的grep有什么区别?

2.awk解决了哪些问题?

3.awk的工作原理?

4.awk的基础用法?

5.awk技术常用【收藏】


1.awk是什么?

awk 用于处理文本,grep仅是单纯的搜索文本工具,两者本质区别。


2.awk解决了哪些问题?

awk 可以对文本内容进行分析,通过访问文本中的数据进行运算,输出想要的结果

其实awk不仅有这些功能,还能像c语言一样进行编程!!!

o my god. 这我也是在后面才发现的,可以进行,判断,循环,数组等功能,因此,可以将awk当成一个脚本语言解释器


3.awk的工作原理?

awk 会遍历文件中的每一行,对行数据进行处理

将文件逐行的读入,以空格为默认分隔符将每行切片,切开的部分再进行各种分析处理。


4.awk的基础用法?

awk 的基本格式 
  awk  [options]  'BEGIN{ commands } pattern{ commands } END{ commands }'  file
awk 注意事项
  awk不能用双引号 awk "{print $1}" oytt.txt 这个坑千万别踩!!!!正确写法: awk ‘{print $1}’ oytt.txt
awk 内置变量
  $0     显示全部内容
  $1 ~ $n  第n列的内容
  NR     文件当前的行号
  NF     文件当前的列数
awk过滤的时机
  BEGIN{}
    读入第一行文本之前执行
    一般用来初始化操作,指令执行1次
  逐行处理{}
    逐行读入文本执行相应的处理
    是最常见,用的多少的编辑指令块,指令执行n次
  END{}
    处理完最后一行文本后执行
    一般用来出数处理结果,指令执行1次

5.awk技术常用【收藏】

文件oytt.txt
1:2:3:4:5:6:7
one : two : three
o y t t

 awk -F  的用法

-F @ :分隔符,根据@这个进行文本分割,@这个符号不是固定的,你可以用你想用的任意字符, : n  = 等等都行,但是不能为空;
-F ‘@’ 或 -F “@” 或 -F @:这里分隔符加不加引号都可以;
以下案例都是以:分号进行分割;
【】 cat oytt.txt | awk -F : '{print $1}'
显示第一列
【】 cat oytt.txt | awk -F : '{print $NF}'
显示每行的有几列
【】 cat oytt.txt | awk -F : '{print $NR}'
显示每行的行号
【】 du -f | awk -F ' ' '{print $4, "显示磁盘剩余内容"}'
可以输入常量,但要注意,print后面要跟逗号,且常量输出在print之后

   awk 基本用法

【1】cat oytt.txt | awk '{print $1}'
后面若不带分割符,是根据空格来分割的
【2】cat oytt.txt | awk '{print $1,$2}'
后面多个参数,加个逗号

   BEGIN与end的用法

  • BEGIN 语句是在文件第一行之前运行的,因此$n不可用;
  • END 语句是是在所有行处理完后执行的;
  • 一个花括号可以有多条语句,用分号隔开;
  • '{BEGIN{}}'错误; 'BEGIN{}'正确;
  • 'BEGIN{},END{}'错误; 'BEGIN{}END{}'正确;
  • 以上是很容易犯的错误需要注意!
【1】cat oytt.txt | awk 'BEGIN{print "begin"}{print $1}END{print "end"}'
完整的写法,可以看出,begin和end一个是在行开始之前,一个是在行结束之后
【2】cat oytt.txt | awk 'BEINE{x = 90}'
定义一个变量


【3】echo -e '1 2 3 4\n5 6 7 8' | awk 'BEGIN{x=0}{x+=$2}END{print x}'
可以对变量求和


(二)linux三剑客之awk的更多相关文章

  1. Linux实战教学笔记18:linux三剑客之awk精讲

    Linux三剑客之awk精讲(基础与进阶) 标签(空格分隔): Linux实战教学笔记-陈思齐 快捷跳转目录: * 第1章:awk基础入门 * 1.1:awk简介 * 1.2:学完awk你可以掌握: ...

  2. (转)不看绝对后悔的Linux三剑客之awk实战精讲

    原文:http://blog.51cto.com/hujiangtao/1923930 一.Linux三剑客之awk命令精讲 第1章 awk基础入门 1.1 awk简介 awk不仅仅时linux系统中 ...

  3. 磁盘分区 & Linux 三剑客之 awk

    今日内容 磁盘分区 Linux 三剑客之 awk 内容详细 一.磁盘分区 磁盘分区 --> 挂载 步骤 1.关机 2.添加硬盘 3.创建分区 fdisk /dev/sdb or gdisk /d ...

  4. day16 Linux三剑客之awk

    day16 Linux三剑客之awk 1.什么是awk,主要作用是什么? 什么是awk,主要作用是什么? awk 主要用来处理文件,将文本按照指定的格式输出.其中包含变量,循环以及数组. 2.awk的 ...

  5. 详解Linux三剑客之awk

    第一篇 awk简介与表达式实例 一种名字怪异的语言 模式扫描和处理,处理数据和生成报告. awk不仅仅是linux系统中的一个命令,而且是一种编程语言:它可以用来处理数据和生成报告(excel):处理 ...

  6. Linux三剑客之awk精讲(基础与进阶)

    第1章 awk基础入门 要弄懂awk程序,必须熟悉了解这个工具的规则.本实战笔记的目的是通过实际案例或面试题带同学们熟练掌握awk在企业中的用法,而不是awk程序的帮助手册. 1.1 awk简介 一种 ...

  7. Linux 三剑客之 awk 实战详解教程

    我们知道 Linux 三剑客,它们分别是:grep.sed.awk.在前边已经讲过 grep 和 sed,没看过的同学可以直接点击阅读,今天要分享的是更为强大的 awk. sed 可以实现非交互式的字 ...

  8. 一篇文章带你学会Linux三剑客之一:awk

    awk是一种用于处理文本.模式匹配的编程语言.与sed和grep,俗称Linux下的三剑客.学会 awk 等于你在 Linux 命令行里,又多了一种处理文本的选择.这篇文章重点教你如何使用,看完这篇文 ...

  9. Linux三剑客之awk命令

    awk简介 awk其名称得自于它的创始人 Alfred Aho .Peter Weinberger 和 Brian Kernighan 姓氏的首个字母.实际上 AWK 的确拥有自己的语言: AWK 程 ...

随机推荐

  1. ql的python学习之路-day2

    python中所有字符串操作 , )))), ))))#返回50个长度的字符串,不够左边就以0补充,可以用在十六进制补位(不常用)运行结果: My name is qinjiaxi---------- ...

  2. JSP中System.out.println()与out.println()区别

    1.out.println()输出到客户端. 在out.println()中,out是response的实例,是以response为对象进行流输出的,即将内容输出到客户端. 如果在JSP页面中使用Sy ...

  3. Java基础之抽象类和接口

    今天来说说抽象类和接口的实现以及它们的区别.我们知道抽象类和接口都是对具体事物的抽象,接口在实现上比抽象类更加抽象,抽象类中可以有普通方法和变量,而接口中只有抽象方法和不可变常量.但是从另一个角度看, ...

  4. 点击劫持ClickJacking

    原文:https://beenle-xiaojie.github.io/2019/01/07/ClickJacking/ 引言 当我们的页面嵌入到一个iframe中时,安全测试提出一个于我而言很新鲜的 ...

  5. 【Redis】List常见应用场景

    常用数据结构 Stack(栈) = LPUSH + LPOP ->FILO Queue(队列) = LPUSH + RPOP Blocking MQ(阻塞队列) = LPUSH + BRPOP ...

  6. 想学spark但是没有集群也没有数据?没关系,我来教你白嫖一个!

    本文始发于个人公众号:TechFlow,原创不易,求个关注 今天是spark专题的第六篇文章,这篇文章会介绍一个免费的spark平台,我们可以基于这个平台做一些学习实验. databricks 今天要 ...

  7. dede列表页限制标题长度

    {dede:list pagesize ='10' titlelen="45"} <li><a href="[field:arcurl/]"& ...

  8. 剑指Offer之裴波那契数列

    题目描述 大家都知道斐波那契数列,现在要求输入一个整数n,请你输出斐波那契数列的第n项(从0开始,第0项为0,第1项是1). n<=39 解法1:递归解法 public int Fibonacc ...

  9. JUC整理笔记三之测试工具jcstress

    并发测试工具Jcstress使用教程 Jcstress 全称 Java Concurrency Stress,是一种并发压力测试工具,可以帮助研究JVM.java类库和硬件中并发的正确性. Wiki地 ...

  10. 【ubuntu】开机一直“/dev/sda3:clean, XXX files, XXXX blocks”解决方法

    由于该电脑是实验室公用跑模型的机子,在解决过程中,发现是 cuda 导致一直进不了系统.原因是装了两个不同版本的cuda,一个9.2,另一个10.0,因为是公用的,目前尚不清楚,怎么同时装上两个的,也 ...