Linux-AWK(应用最广泛的文本处理程序)

目录

一、awk基础

二、awk工作原理

三、OFS输出分隔符

四、awk的格式化输出

五、awk模式pattern


一、awk基础

 使用案例:

1.准备工作

请在Linux中执行以下指令

cat -n /etc/passwd > ./passwd

 练习:

1.从文件 passwd 中提取并打印出第五行的内容

awk NR==5 passwd 
awk “NR==5” passwd
awk ‘NR==5’ passwd

似乎条件可以用单引号和双引号包括起来,也可以不用引号

2.从文件 passwd 中提取并打印出第五行和第六行的内容

awk ‘NR==5,NR==6’ passwd

注意:条件中间要用逗号

3.输出passwd文件下所有的行号

awk '{print NR}' passwd 

注意:

  1. print是awk最常用动作之一。
  2. 花括号外面必须加单引号或者双引号

4.使用 awk 打印出文件 passwd 的每一行内容。

awk '{print $0,NR}' passwd

5.读取 "passwd" 文件的每一行,按照冒号分隔,然后打印出每行的第一个字段(用户名)和最后一个字段。

awk -F “:” ‘{print $1,$NF}’ passwd 

这里-F代表分割线,加上":"就是以“:”作为分割,比如root:123456,经过分割后形成两列,root与123456.


二、awk工作原理

一次读取一行文本

输入分隔符进行切片

将每片直接保存在内建的变量中,$1,$2,$3.


三、OFS输出分隔符

当没有使用分隔符的时候

当加上分隔符时候,比如逗号

 可以看到两列之间空了一段出来,那么换上更容易看到的分隔符呢?

指定默认分隔符(通过设置参数OFS实现输出分隔符)

上述三个等号改为 \t  会如何?


四、awk的格式化输出

请你比较下面不同

        vs        

---使用print

 ---使用printf

 对比后可以看到区别:

以下练习awk的格式化输出

1.打印整行内容作为一个字符串输出。

2.打印整行内容作为一个字符串输出。但是加上换行

 3.打印一段字符串并设置分隔符


五、awk模式pattern

最前面关键字awk,最后面是文件,中间是  参数  引号,引号中是  条件+动作

案例1:使用pattern中的BEGIN使得只输出china而忽略后面的文件

案例2:使用BEGIN  与一般文本下的执行顺序

BEGIN后面的花括号内容优先处理,BEGIN后的动作完成后再处理后面的

 案例3:使用BEGIN 一般文本 END下的执行顺序

 总结一下

先BEGIN,中文本,后END


本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/174048.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

微软允许OEM对Win10不提供关闭Secure Boot

用户可能将无法在Windows 10电脑上安装其它操作系统了,微软不再要求OEM在UEFI 中提供的“关闭 Secure Boot”的选项。 微软最早是在Designed for Windows 8认证时要求OEM的产品必须支持UEFI Secure Boot。Secure Boot 被设计用来防止恶意程序悄悄潜入到引导进程。问…

Linux编辑器:vim的简单介绍及使用

目录 1.什么是vim 2.vim的基本概念 3.vim 的基本操作 4. 各模式下的命令集 4.1 正常模式命令集 4.2 末行模式命令集 5.补充 5.1 vim支持多文件编辑 5.2 vim 的配置 1.vim 配置原理 2. 常用简单配置选项: 3. 使用插件 1.什么是vim Vim 是从 vi 发展出…

AWS实战(一)-创建S3 存储桶

1)登录AWS账号,选择服务—>存储—>S3。 2)查看存储桶列表 3)点击"创建存储桶"创建bucket。 4)设置跨域 点击编辑,修改跨域设置即可。

【Seata源码学习 】 扫描@GlobalTransaction注解 篇一

1. SeataAutoConfiguration 自动配置类的加载 基于SpringBoot的starter机制,在应用上下文启动时,会加载SeataAutoConfiguration自动配置类 # Auto Configure org.springframework.boot.autoconfigure.EnableAutoConfigurationio.seata.spring.boot.aut…

Linux之基本指令操作

1、whoami whoami:查看当前账号是谁 2、who who:查看当前我的系统当中有哪些用户,当前有哪些人登录了我的机器 3、 pwd pwd:查看我当前所处的目录,就好比Windows下的路径 4、ls ls:查看当前目录下的文件信…

[文件读取]Druid 任意文件读取 (CVE-2021-36749)

1.1漏洞描述 漏洞编号CVE-2021-36749漏洞类型文件读取漏洞等级⭐⭐⭐漏洞环境VULFOCUS攻击方式 描述: 由于用户指定 HTTP InputSource 没有做出限制,可以通过将文件 URL 传递给 HTTP InputSource 来绕过应用程序级别的限制。攻击者可利用该漏洞在未授权情况下&…

C++模拟实现——红黑树

一、介绍 红黑树也是对一般的搜索二叉树不能保证平衡的一个改进,和AVL树采用的思路不同,但同样需要旋转,其本质也是一颗平衡搜索二叉树,其节点有颜色的区分,并且被一些规则束缚,在这些规则下,能…

sqli-labs关卡13(基于post提交的单引号加括号的报错盲注)通关思路

文章目录 前言一、回顾第十二关知识点二、靶场第十三关通关思路1、判断注入点2、爆显位3、爆数据库名4、爆数据库表5、爆数据库列6、爆数据库关键信息 总结 前言 此文章只用于学习和反思巩固sql注入知识,禁止用于做非法攻击。注意靶场是可以练习的平台,…

K8S知识点(九)

(1)Pod详解-结构和定义 一级属性有下面这些:前两个属性是字符串,上面有定义 kind:Pod version:v1 下面的属性是object 还可以继续查看子属性:二级属性 还可以继续查看三级属性: 通…

Exploration by random network distillation论文笔记

Exploration by Random Network Distillation (2018) 随机网络蒸馏探索 0、问题 这篇文章提出的随机网络蒸馏方法与Curiosity-driven Exploration by Self-supervised Prediction中提出的好奇心机制的区别? 猜想:本文是基于随机网络蒸馏提出的intrin…

第一百七十二回 SegmentedButton组件

文章目录 1. 概念介绍2. 使用方法2.1 SegmentedButton2.2 ButtonSegment 3. 代码与效果3.1 示例代码3.2 运行效果 4. 内容总结 我们在上一章回中介绍了"SearchBar组件"相关的内容,本章回中将 介绍SegmentedButton组件.闲话休提,让我们一起Tal…

JavaWeb——CSS3的使用

目录 1. CSS概述 2. CSS引入方式 3. CSS颜色显示 4. CSS选择器 4.1. 元素(标签)选择器 4.2. id选择器 4.3. 类选择器 4.4. 三者优先级 5. 盒子模型 1. CSS概述 CSS,全称为“Cascading Style Sheets”,中文译为“层叠样式…