热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

第一章awk

第1章awk1awk简介awk不仅仅时linux系统中的一个命令,而且是一种编程语言,可以用来处理数据和生成报告(excel)

                                                                                                                    第1章 awk

1 awk简介

awk不仅仅时linux系统中的一个命令,而且是一种编程语言,可以用来处理数据和生成报告(excel)。处理的数据可以是一个或多个文件,可以是来自标准输入,也可以通过管道获取标准输入,awk可以在命令行上直接编辑命令进行操作,也可以编写成awk程序来进行更为复杂的运用。

awk指令是由模式,动作,或者模式和动作的组合组成。

  • 正则表达式作为模式
  • 比较表达式作为模式
  • 范围模式
  • 特殊模式BEGIN和END
  • awk默认就支持的元字符
 

功能

示例

解释

^

字符串开头

/^k/或$3~/^k/

匹配所有以k开头的字符串;匹配出所有第三列中以k开头的

$

字符串结尾

/a$或$3~/a$/

匹配所有以a结尾的字符串;匹配第三列中以a结尾的

.(点)

匹配任意但个字符(包括回车符)

/c..l/

匹配字母c,然后两个任意字符,再以l结尾的行

*

重复0个或多个前一个字符

/a*cool/

匹配0个或多个a之后紧跟着cool的行

+

重复前一个字符一次或多次

/a+b/

匹配一个或多个a加上字符串b的行

?

匹配0个或一个前边的字符

/a?b/

匹配以字母a或b或c开头的行

[]

匹配指定字符组内的任一个字符

/^[abc]/

匹配以字母a或b或c开头的行

[^]

匹配不在指定字符组内的任一字符

/^[^abc]/

匹配不以字母a或b或c开头的行

()

子表达式组合

/(nimei)+/

表示一个或多个cool组合,当有一些字符需要组合时,使用括号括起来

|

或者的意思

/(A)|B/

匹配A或字母B的行

awk默认不支持的元字符:(参数--posix)

元字符

功能

示例

解释

x{m}

x字符重复m次

/cool{5}/

匹配cool字符5次

x{m,}

x字符重复至少m次

/(cool){2,}/

匹配cool整体,至少2次

x{m,n}

x字符重复至少m次,但不超过n次

/(cool){5,6}/

匹配cool整体,至少5次,最多6次

  •  

 

awk -F ":" &#39;NR>&#61;2 && NR<&#61;6{print NR,$1}&#39; 文件

-F&#xff1a;参数-F指定awk按照什么标志进行文件分割&#xff0c;切割成一列一列的&#xff0c;如果不见-F参数&#xff0c;awk默认按照空格进行文件分割。

":"&#xff1a;指定“ &#xff1a;”作为分割标志

NR>&#61;2 && NR<&#61;6&#xff1a;这部分表示模式&#xff0c;是一个条件&#xff0c;表示取第2行到第6行

{print NR,$1}&#xff1a;这部分表示动作&#xff0c;表示要输出NR行号和$1第一列。

$0&#xff1a;表示默认全输出。$NF:表示去每行最后一组元素

 

awk -F ":" &#39;BEGIN{}模式{动作}END{}&#39;

BEGIN{}&#xff1a;开始模式&#xff08;告诉awk要如何读&#xff09;  END{}&#xff1a;结束模式&#xff08;告诉awk要如何结束&#xff09;

BEGIN有读如换行符和输出换行符&#xff1a;BEGIN{RS&#61;"/";ORS&#61;"任意符号"}

 

 

问题&#xff01;1 看文件/etc/passed&#xff0c;把所有的英文单字取出来排序&#xff0c;看那个单词的重复最多&#xff0c;看前十行&#xff1f;

sed -r &#39;s#[^a-zA-Z]# #g&#39; shabi | xargs -n1 | sort | uniq -c | sort -rn | head

s#[]# #g:表示把中括号里的内容替换成空行

[^a-zA-Z]:表示取反

xargs -n1:表示每一行只有一个元素

sort:默认按照26个字母排序。

参数&#xff1a;-n默认按照数字排序

-r 逆转排序

Uniq:相同元素去重

参数:-c  去重复单词时并统计次数

问题&#xff01;2 &#xff1a;去除网eth0的IP地址&#xff1f;

方法一&#xff1a;hostname -I

方法二&#xff1a;ifconfig eth0 | awk &#39;BEGIN{RS&#61;"[ :]"}NR&#61;&#61;31&#39;

方法三 &#xff1a;ifconfig eth0 | awk -F "[ :]&#43;" &#39;NR&#61;&#61;2{print $4}&#39;

 

问题&#xff01;3 查看文件一共有多少空行&#xff1f;

方法一 &#xff1a;grep -c "^$" /etc/services 

 方法二 &#xff1a;awk &#39;/^$/{print $0}&#39; /etc/services | wc -l

 方法三 &#xff1a;awk &#39;/^$/{i&#61;i&#43;1;print i}&#39; /etc/services

 方法四 &#xff1a; awk &#39;/^$/{i&#61;i&#43;1}END{print i}&#39; /etc/services

 

 

 

转:https://www.cnblogs.com/yunweizongjian/p/9874595.html



推荐阅读
  • 文章目录一、awk简介二、awk的两种形式语法格式1options:2command:三、awk工作原理四、记录与字段相关内部变量:五、格式化输出:printf函数六、awk模式和 ... [详细]
  • 本文整理了315道Python基础题目及答案,帮助读者检验学习成果。文章介绍了学习Python的途径、Python与其他编程语言的对比、解释型和编译型编程语言的简述、Python解释器的种类和特点、位和字节的关系、以及至少5个PEP8规范。对于想要检验自己学习成果的读者,这些题目将是一个不错的选择。请注意,答案在视频中,本文不提供答案。 ... [详细]
  • Java程序员必会的40个Linux命令!
    你知道的越多,不知道的就越多,业余的像一棵小草!你来,我们一起精进!你不来,我和你的竞争对手一起 ... [详细]
  • 本文由编程笔记#小编为大家整理,主要介绍了logistic回归(线性和非线性)相关的知识,包括线性logistic回归的代码和数据集的分布情况。希望对你有一定的参考价值。 ... [详细]
  • 本文介绍了在Python3中如何使用选择文件对话框的格式打开和保存图片的方法。通过使用tkinter库中的filedialog模块的asksaveasfilename和askopenfilename函数,可以方便地选择要打开或保存的图片文件,并进行相关操作。具体的代码示例和操作步骤也被提供。 ... [详细]
  • 本文介绍了数据库的存储结构及其重要性,强调了关系数据库范例中将逻辑存储与物理存储分开的必要性。通过逻辑结构和物理结构的分离,可以实现对物理存储的重新组织和数据库的迁移,而应用程序不会察觉到任何更改。文章还展示了Oracle数据库的逻辑结构和物理结构,并介绍了表空间的概念和作用。 ... [详细]
  • 开发笔记:加密&json&StringIO模块&BytesIO模块
    篇首语:本文由编程笔记#小编为大家整理,主要介绍了加密&json&StringIO模块&BytesIO模块相关的知识,希望对你有一定的参考价值。一、加密加密 ... [详细]
  • 本文介绍了Java工具类库Hutool,该工具包封装了对文件、流、加密解密、转码、正则、线程、XML等JDK方法的封装,并提供了各种Util工具类。同时,还介绍了Hutool的组件,包括动态代理、布隆过滤、缓存、定时任务等功能。该工具包可以简化Java代码,提高开发效率。 ... [详细]
  • 本文介绍了C#中生成随机数的三种方法,并分析了其中存在的问题。首先介绍了使用Random类生成随机数的默认方法,但在高并发情况下可能会出现重复的情况。接着通过循环生成了一系列随机数,进一步突显了这个问题。文章指出,随机数生成在任何编程语言中都是必备的功能,但Random类生成的随机数并不可靠。最后,提出了需要寻找其他可靠的随机数生成方法的建议。 ... [详细]
  • Linux如何安装Mongodb的详细步骤和注意事项
    本文介绍了Linux如何安装Mongodb的详细步骤和注意事项,同时介绍了Mongodb的特点和优势。Mongodb是一个开源的数据库,适用于各种规模的企业和各类应用程序。它具有灵活的数据模式和高性能的数据读写操作,能够提高企业的敏捷性和可扩展性。文章还提供了Mongodb的下载安装包地址。 ... [详细]
  • 本文介绍了Windows操作系统的版本及其特点,包括Windows 7系统的6个版本:Starter、Home Basic、Home Premium、Professional、Enterprise、Ultimate。Windows操作系统是微软公司研发的一套操作系统,具有人机操作性优异、支持的应用软件较多、对硬件支持良好等优点。Windows 7 Starter是功能最少的版本,缺乏Aero特效功能,没有64位支持,最初设计不能同时运行三个以上应用程序。 ... [详细]
  • 【shell】网络处理:判断IP是否在网段、两个ip是否同网段、IP地址范围、网段包含关系
    本文介绍了使用shell脚本判断IP是否在同一网段、判断IP地址是否在某个范围内、计算IP地址范围、判断网段之间的包含关系的方法和原理。通过对IP和掩码进行与计算,可以判断两个IP是否在同一网段。同时,还提供了一段用于验证IP地址的正则表达式和判断特殊IP地址的方法。 ... [详细]
  • 如何查询zone下的表的信息
    本文介绍了如何通过TcaplusDB知识库查询zone下的表的信息。包括请求地址、GET请求参数说明、返回参数说明等内容。通过curl方法发起请求,并提供了请求示例。 ... [详细]
  • Android系统源码分析Zygote和SystemServer启动过程详解
    本文详细解析了Android系统源码中Zygote和SystemServer的启动过程。首先介绍了系统framework层启动的内容,帮助理解四大组件的启动和管理过程。接着介绍了AMS、PMS等系统服务的作用和调用方式。然后详细分析了Zygote的启动过程,解释了Zygote在Android启动过程中的决定作用。最后通过时序图展示了整个过程。 ... [详细]
  • ZABBIX 3.0 配置监控NGINX性能【OK】
    1.在agent端查看配置:nginx-V查看编辑时是否加入状态监控模块:--with-http_stub_status_module--with-http_gzip_stat ... [详细]
author-avatar
兴桂秀寧29
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有