文档章节

Linux学习-10月18(awk)

w
 wxy丶
发布于 10/22 11:51
字数 673
阅读 12
收藏 2

9.6/9.7 awk

 

一、awk简介

   1. awk是一种编程语言,用于对文本和数据进行处理的

   2. 具有强大的文本格式化能力

   3. 利用命令awk,可以将一些文本整理成为我们想要的样子

   4. 命令awk是逐行进行处理的

    

二、awk使用示例

  • 指定分割符号进行分割:

        awk -F ':' '{print $1}'  passwd

        -F:指定分隔符,如果不指定分隔符默认是以空格或者空白行,作为分割

        $1:表示打印第一段,如果是$2就是打印第二段

        

        多段打印:

        awk -F ':' '{print $1,$3,$5}'  passwd 

        

        打印全部行:

        awk -F ':' '{print $0}' passwd

        

 

  • awk匹配

        awk '/root/' passwd

        

        awk可以使用正则,并且自带脱意功能,不需要像grep -E 和sed -r 进行脱意

        

        

  •   awk匹配行,并进行分割

          匹配带root的行,并打印第一、第三段

           

  •  awk也支持多个匹配,并进行分割

           匹配带root的行,并打印第一、第三段

           匹配带user的行,并打印第一段、第三段、第四段

           awk -F ':' '/root/ {print $1,$3} /user/ {print $1,$3,$4}' passwd

           

  • 使用正则进行打印匹配root或user行,并打印第一段

        awk -F ':' '/root|user/ {print $1}' passwd

        

  • 使用数学运算匹配

        1、匹配第三段等于0的,这里可以不输入print也会默认打印。

        awk -F ':' '$3==0' passwd

       

        2、匹配第三段大于1000的并指定打印第五段

       

        3、注意的是如果数字中使用了""号,会认为是字符串则会按ascll码进行排序

        

    4、不等于

        匹配第三段不等于4

        awk -F ':' '$3 != 4 {print $4}' passwd 

    5、&&和||

        匹配第三段大于1000,并且第六段等于/home/wxy的

         awk -F ':' '$3>=1000 && $6 =="/home/wxy"' passwd 

        

        awk -F ':' '$3==1000 || $6 =="/home/wxy"' passwd

        

  • awk 内置变量

        1、输出分隔符:OFS

         

    2、NR:显示行数

          

         NR也可以用来做判断,比如说只打印前10行:

            awk -F ':' 'NR <=10 {print NR":" $0}' passwd

        

    3、NF:显示段数

        awk -F ':' '$3 >=1000  {print NF" " $0}' passwd

        

  • awk改变值

       将第一段全部改为root

        awk -F ':' '$1="root"' passwd

        

        赋值后所有的分割符都没了,可以再使用OFS加上:

        awk -F ':' '{OFS=":"} $1="root"' passwd

        

  • awk求和

        统计第三段的相加的总和

        awk -F ':' '{(oto=oto+$3)};END {prin^Coto}' passwd

        

  • awk if判断

        awk -F ':' '{if($1=="root") {print $1}}' passwd 

        

 

 

 

 

 

 

 

 

 

 

    

© 著作权归作者所有

共有 人打赏支持
w
粉丝 9
博文 44
码字总数 37077
作品 0
私信 提问
2016年 10月 06日 星期四 08:43:51 CST

1)版本控制:Git、GitHub 注:推荐这个交互式的 Git 入门资源,号称 15 分钟就够了。 2)正则表达式 注:推荐《55分钟学会正则表达式》 3)awk 译注:《「sed & awk」读书笔记之 awk 》 4)...

四明狂客
2016/10/06
17
0
linux命令行计算器--bc

详细文档请 man bc 在windows下,大家都知道直接运行calc,(c:windowssystem32calc.exe),请可以打开计算器。 注: calculate vt.&vi. 计算;calculator n. 计算器。calc就是这个计算的简写。...

李长春
2012/02/02
0
0
linux下grep分析apache日志的命令集合

linux下grep分析apache日志的命令集合,不可错过的好文章,有了这些命令,秒杀江湖中大部分的apache日志分析。 实例: 月份英文简写英文全称 一月Jan.January 二月Feb.February 三月Mar.Mar...

hmc0316
2013/03/06
0
0
监控io性能/free命令/ps命令/查看网络状态/linux下抓包

监控io性能 使用iostat命令查看磁盘负载情况 重点关注:%util占比,如果这个值越大则表示你的硬盘越忙,这也会是你系统变慢的原因; 查看具体哪个进程在读写,使用iotop,首次使用需要Yum安装...

Hi_Yolks
07/11
0
0
Linux下的计算器(bc、expr、dc、echo、awk)知多少?

在windows下,大家都知道直接运行calc,(c:/windows/system32/calc.exe),请可以打开计算器。 注: calculate vt.&vi. 计算;calculator n. 计算器。calc就是这个计算的简写。 Ca在化学中是代...

wdliming
2011/12/26
0
0

没有更多内容

加载失败,请刷新页面

加载更多

当程序员有了中年危机 你会发现你就是个屁

前言 程序员是一个怎样的存在?引用一句鸡汤的名言来说:你以为你用双手改变了世界,实际上是苍老了自己。为什么我今天会抛出这个话题,其实我也是一个懵懂的少年,我也曾经为了成为一名程序...

架构师springboot
17分钟前
0
0
大型网站B2C商城项目实战+MongoDB+Redis+zookeeper+MySQL

本文列出了当今计算机软件开发和应用领域最关键部分,如果你想保证你现在以及未来的几年不失业,那么你最好跟上这些技术的发展。虽然你不必对这十种技术样样精通,但至少应该对它们非常熟悉。...

java知识分子
17分钟前
1
0
大型企业网络系统集成方案如何设计?

网络系统集成是企业实现无纸化办公和即时通讯办公的基础建设,在以生产效率为核心竞争力的市场中,企业想要快速获取信息并有效提高企业工作效率及业务能力,企业网络系统集成是必不可少的,由...

Java干货分享
18分钟前
0
0
Spring应用学习——IOC

1. Spring简介 1. Spring的出现是为了取代EJB(Enterprise JavaBean)的臃肿、低效、脱离现实的缺点。Spring致力于J2EE应用的各层(表现层、业务层、持久层)的解决方案,Spring是企业应用开...

江左煤郎
19分钟前
0
0
用Redis轻松实现秒杀系统

导论 曾经被问过好多次怎样实现秒杀系统的问题。昨天又在CSDN架构师微信群被问到了。因此这里把我设想的实现秒杀系统的价格设计分享出来。供大家参考。 秒杀系统的架构设计 秒杀系统,是典型...

James-
26分钟前
0
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部