文本三剑客之 awk

这篇具有很好参考价值的文章主要介绍了文本三剑客之 awk。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

awk

Linux/UNIX 系统中,awk 是一个功能强大的编辑工具。逐行读取输入文本

以空格作为分割符,多个空格他会自动压缩成一个空格

AWK信息的读入也是逐行指定的匹配模式进行查找,对符合条件的内容进行格式化输出或者过滤处理.

1按照命令找指定的行  2.找到的行 打印,操作

awk 默认的方式就是打印  把结果给你输出到屏幕上

可以在无交互 的情况下实现相当复杂的文本操作,被广泛应用于 Shell 脚本,完成各种自动化配置任务。

命令结构

awk ‘< pattern> <acion>’ <iuput-file>   #只能那个用单引号引起来

          操作符      怎么干     处理对象  

awk 的工作过程

1先看BEGIN{action)这个模块是读取操作,读文件的所有行,所有读取完毕,然后一次执行

2.END{bction)打印。输出结果,对前面的结果,条件判断,还可以用代码接着操作

awk的工作流程就是对行进行处理  然后区列

文本三剑客之 awk

 工作原理

sed命令常用于一整行的处理,而awk比较倾向于将一行分成多个“字段”然后再进行处理

目录

awk的基本格式及其内置变量

awk 选项 '模式或条件 {操作}' 文件1 文件2.

-F  :|     加上指定分隔符

-v  变量赋值

注意一定是单引号:'模式或条件 {操作}

{ }外指定条件,{ }内指定操作。

内置变量

不能用双引号括起来,不然系统会把它当成字符串

内置变量

$0 当前处理的行的整行内容  打印所有

$n

当前处理行的第n个字段(第n列)
NR 当前处理的行的行号(序数)

NF

当前处理的行的字段个数。$NF代表最后一个字段
FS 列分割符。指定每行文本的字段分隔符,输入内容的分隔符,

命令行操作

这是aed ' '  打印的方式

文本三剑客之 awk

这是awk ‘{print}’  打应的方式 

 文本三剑客之 awk

 awk ‘1{peint}’ 2.txt  这两个是一个意思    加1和不加一

awk '{peint}' 2.txt

文本三剑客之 awk

 $0 是全部打印

awk '{print $0}' 2.txt

文本三剑客之 awk

先看这张图就好理解了  对没行的列进行处理  也就是切片

 文本三剑客之 awk

$0 是打印所有内容 后面加上2 3 4 就是打印他的列数

文本三剑客之 awk

实战演练对 /etc/passwd 提取第1列和第4列

文本三剑客之 awk

既有行号也有内容

awk '{print NE,$0}' /etc/passwd

 文本三剑客之 awk

awk 'NR==3{print}'  3.txt    指定打印出第三行的内容

 文本三剑客之 awk

 awk 'NR==3,NR==5{print}' test1.txt  ----打印3-5行的内容文本三剑客之 awk

这边要主要下冒号 逗号不要搞混 了

awk 'NR==3,NR==5{print}' 3.txt  ----打印3 4 5行的内容

awk 'NR==3;NR==5{print}' 3.txt  ----打印第3行和第5行

文本三剑客之 awk

awk '(NR>=3)&&(NR<=5){print}' test1.txt -----正则的表达方式,打印3-5行的内容

文本三剑客之 awk

奇偶行打印

awk 'NR%2==0{print}' test1.txt #打印偶数行

 awk 'NR%2==1{print}' test1.txt #打印奇数行

文本三剑客之 awk

 awk运算:

文本三剑客之 awk

文本三剑客之 awk

 getline

 getline的工作过程

1、当getline左右无重定向符号(“<”,">")或者管道符号(“|”)时,

打印偶数行

awk '{getline;print $0}' test1.txt #相当于打印了偶数行

 文本三剑客之 awk

 getline作用

getline没有重定向  没有管道符就是打印奇偶行 

awk '{print $0;getline}' test1.txt #相当于打印了奇数行文本三剑客之 awk

2、当getline左右有管道符号或重定向符时 

作用:就是从指定文件获取内容>输出到新的文件里  $0代表全量  也就是全部的意思

 awk '{getline < "1.txt"; print $0 > "ky30.txt";}' 3.txt #使用重定向把1.txt输出给ky30

文本三剑客之 awk

 第一个:getline是awk的一个内置函数

 第二个:没有重定向和管道符,就是奇偶行

第三个: 重定向,就从指定文件获取内容,|,赋值变量

文件内容匹配过滤打印

文本三剑客之 awk文章来源地址https://www.toymoban.com/news/detail-475225.html

到了这里,关于文本三剑客之 awk的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Linux 文本处理三剑客:grep、sed 和 awk

    awk、grep、sed是linux操作文本的三大利器,合称文本三剑客,也是必须掌握的linux命令之一。三者的功能都是处理文本,但侧重点各不相同,其中属awk功能最强大,但也最复杂。grep更适合单纯的查找或匹配文本,sed更适合编辑匹配到的文本,awk更适合格式化文本,对文本进行较

    2024年01月17日
    浏览(40)
  • Linux:管道命令与文本处理三剑客(grep、sed、awk)

    众所周知,bash命令执行的时候会输出信息,但有时这些信息必须要经过几次处理之后才能得到我们想要的格式,此时应该如何处置?这就牵涉到 管道命令(pipe) 了。管道命令使用的是 | 这个界定符号。另外,管道命令与连续执行命令是不一样的,这点下面我们会说明。 我们先

    2023年04月18日
    浏览(31)
  • 文本三剑客之 awk

    Linux/UNIX 系统中,awk 是一个功能强大的编辑工具。逐行读取输入文本 以空格作为分割符,多个空格他会自动压缩成一个空格 AWK信息的读入也是逐行指定的匹配模式进行查找,对符合条件的内容进行格式化输出或者过滤处理. 1按照命令找指定的行  2.找到的行 打印,操作 awk

    2024年02月08日
    浏览(30)
  • Shell脚本攻略:文本三剑客之awk

    目录 一、理论 1.awk原理 2.awk打印  3.awk条件判断 4.awk数组与循环 5.awk函数 6.常用命令 二、实验 1.统计磁盘可用容量 2.统计/etc下文件总大小 3.CPU使用率 4.统计内存 5.监控硬盘 (1)概念 awk由 Aho,Weinberger 和 Kernighan 创建的文本模式扫描和处理语言。 awk非常复杂,所以这不是一

    2024年02月08日
    浏览(36)
  • Linux 三剑客命令之 awk 详解

    目录 一、Awk 实战讲解 1.1 awk 的原理 1.2 BEGIN 和 END 模块 1.3 运算符 1.4 常用 awk 内置变量 1.5 awk 正则 1.6 awk 常用字符串函数         awk 是一种很棒的语言,它适合文本处理和报表生成,其语法较为常见,借鉴了某些语言的一些精华,如 C 语言等。在 linux 系统日常处理工作中

    2024年02月03日
    浏览(45)
  • linux命令三剑客grep、sed、awk

    准备 grep、sed、awk号称\\\"linux三剑客\\\",使用频繁,功能强大,本文通过一个实例演示下基本用法。首先准备一个文本文件,命名为text.txt,写入文件内容: grep 首先,最简单的是grep。经常用来过滤查看日志。对于grep需要知道如下几个常用的命令选项: -n: 额外输出行号。例如过

    2024年02月05日
    浏览(58)
  • Linux中字符处理三剑客(grep sed awk )

    在 Linux 系统中,字符处理流程可以利用三个常用的工具来完成,三剑客的具体说明如下: grep:grep 是一种强大的文本搜索工具,可以搜索文件内容中包含指定文本的行,并打印出包含该文本的行。grep 命令通常用于搜索日志文件、配置文件等。 在Linux中,\\\"grep\\\"是一种文本搜索

    2024年02月08日
    浏览(32)
  • Linux三剑客grep、sed、awk(包括练习题)

    Linux grep (global regular expression) 命令用于查找文件里符合条件的字符串或正则表达式。 基本用法与常见的正则表达式 扩展正则表达式实践 此处使用grep -E 进行实践扩展正则,egrep官网已经弃用 注意:sed和awk使用单引号,双引号有特殊解释 sed是Stream Editor(字符流编辑器)的缩写

    2024年02月11日
    浏览(28)
  • Linux三剑客(awk、sed、grep) 和 正则表达式

    本文章适用于一定工作经验(熟悉Linux基础)的同行,欢迎各位大佬批判指正。 上手三剑客(grep,sed,awk)之前,需要熟悉正则表达式, 正则表达式 ——事先定义好的一些特定字符、及这些特定字符的组合,组成一个“规则字符串”,这个“规则字符串”用来表达对字符串的

    2024年02月15日
    浏览(40)
  • linux文本三剑客

    过滤/查找 参数 用法 作用 -i grep -i STRING xxx.txt 从xxx.txt文件查找不区分大小写STRING -w grep -w STRING xxx.txt 精确匹配STRING -e grep -e STRING1 -e STRING2 xxx.txt 查找多个STRING行 -n grep -n STRING xxx.txt 查看STRING 在第几行 -v grep -v STRING xxx.txt 输出不包含STRING的行 -r grep -r STRING DIR/ 查找DIR目录下哪

    2024年02月11日
    浏览(31)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包