awk的简单使用方法

一、简介

二、语法

三、action:执行动作

四、选项

五、内置变量NF

一、简介

awk常用于分析数据生成报表,它将文件逐行读入,使用分隔符将数据分段后,进行处理。awk其名称得自于它的创始人 Alfred Aho 、Peter Weinberger 和 Brian Kernighan 姓氏的首个字母,Linux中的awk通常说的是gawk。

二、语法

awk [options] ‘/pattern/{action}’/path/to/file

地址定界/pattern/:

pattern1,pattren2:指定的行

/pattern/:可以仅仅是模式匹配的行

expression:可以表达式

[[email protected] ~]# awk -F: ‘$3>500{print $1,$3,$7}‘ /etc/passwd    #分段后,用表达式比较第3段uid的值,
student 501 /bin/bash

BEGIN:在处理任意行之前进行的操作

[[email protected] ~]# awk -F: ‘BEGIN{print "username uid shell"}$3>500{print $1,$3,$7}‘ /etc/passwd    #此处意为在处理数据前,在行首先打印标题内容 
username uid shell
student 501 /bin/bash
You have new mail in /var/spool/mail/root

END:行数据处理完后进行收尾操作

[[email protected] ~]# awk -F: ‘$3>500{print $1,$3,$7}END{print "username uid shell"}‘ /etc/passwd    #此处意为行数据处理完后,在末行打印标题内容
student 501 /bin/bash
username uid shell

三、action:执行动作

print:打印内容到屏幕

printf:按照格式打印内容到屏幕

四、选项

-F:指定分隔符

[[email protected] ~]# awk -F: ‘/bash/{print $1,$3,$7}‘ /etc/passwd    #匹配内容中有“bash”的行,以分隔符“:”分段,打印第1、第3、第7段内容
root 0 /bin/bash
mockbuild 500 /bin/bash
student 501 /bin/bash

五、内置变量NF

NF:Number of Filed,段数

$NF:最后一列

[[email protected] init.d]# echo $PWD    #此路径由3个分号分隔成4段内容
/etc/rc.d/init.d
[[email protected] init.d]# echo $PWD | awk -F/ ‘{print $1}‘   #从结果看出第一段为分号前内容

[[email protected] init.d]# echo $PWD | awk -F/ ‘{print $NF}‘    #$NF表示最后一段
init.d
[[email protected] init.d]# echo $PWD | awk -F/ ‘{print NF}‘    #NF表示分隔的段数
4
[[email protected] init.d]#
时间: 2024-08-25 20:12:51

awk的简单使用方法的相关文章

详解 awk 工具的简单使用方法

来源:jarly https://my.oschina.net/jarly/blog/898144 [转注]:awk 是一个强大的文本分析工具,本教材只是简单的入门.结合Linux其它文件操作,shell脚本等强大的会爆表,经常接触文件分析的同学建议深入学习. 当你第一次拿起双手在电脑上使用 awk 命令处理一个或者多个文件的时候,它会依次读取文件的每一行内容, 然后对其进行处理,awk 命令默认从 stdio 标准输入获取文件内容, awk 使用一对单引号来表示 一些可执行的脚本代码,在可执行

MySQL笔记-最简单的方法来解决找不到mysqld.sock文件的问题

首先,环境:ubuntu 14.04,采用apt-get的方式安装的,手动安装可能路径设置稍有区别. 1.安装MySQL后,用命令行首次启动时发现找不到Mysqld.sock文件,提示: ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2),如图: 2.网上的方法很多不实用,这里介绍一种最简单的方法来解决这个问题. # sudo /etc/i

php批量删除cookie的简单实现方法

这篇文章主要介绍了php批量删除cookie的简单实现方法,实例分析了删除单个cookie及数组遍历的方式批量删除cookie的技巧与相关注意事项,需要的朋友可以参考下 本文实例讲述了php批量删除cookie的简单实现方法.分享给大家供大家参考.具体实现方法如下: <?php //删除单个cookie:键值设置为空.时间设置为过期了的时间 setCookie("name","",time()-60); //删除多个cookie,采用遍历数组方式 foreac

如何用最简单的方法将PCweb改成适合各种设备的web

使web页面自适应设备大小 1)用一个<div>包围<body>的内容 2)该div属性的宽度设为100%   (宽度设为100%后,页面会随着设备窗口大小自动改变) 3)高度:通过window.innerHeight获得设备高度在通过jQuery的css()动态改变元素 (如果没有设高度,则页面高度会随着内容高度的变化而变化) 1 <style> 2 *{ 3 margin:0; 4 padding:0; 5 } 6 .knr{ 7 margin:0 auto; 8

找1~100之间素数的两种比较简单的方法

方法一:利用一个布尔类型的值的判断,优点想法更直接易懂 public static void main(String[] args) { for(int i=2;i<=100;i++){ boolean b=true; for(int n=2;n<i;n++){ if(i%n==0){ b=false; break; } } if(b==true){ System.out.print(i+"\t"); } } } 方法二:能被2和这个数本身以外的数整除的都不是素数.理解难但

Linux awk命令简单操作

AWK Command: 一 : print print item1,item2,.......... 要点: 1.各项目之间使用逗号隔开,而输入时则以空白字符分隔 2.输出的item可以为字符串或树枝,当前记录的字段(如$1).变来那个或awk的表达式,树枝会转换成字符串 3.print命令后面的item可以省略,此时其功能相当于print $0,以此,如果想输出空白行,则需要print "" 例子: 1.awk 'BEGIN { pring "line one\n lin

Android反编译工具介绍与简单实用方法

Android反编译工具介绍与简单实用方法 Android反编译的目的无非就是为了看到APK的xml.资源和代码: 得到代码的方式:直接解压APK文件 --> 得到classes.dex文件 --> 使用 dex2jar classes.dex classes.jar生成jar文件 --> [可选的解压jar文件] -->使用XJad或者JDCompiler查看源代码 得到XML的方式: 方式1:直接解压APK文件 --> 通过axmlprinter工具查看XML文件(这种方

用jsonp来解决跨域问题的三种简单的方法

jsonp实现跨域的方法 使用ajax方法获取数据不能跨域,为了解决这个问题,普遍使用jsonp来实现跨域,下面是对jsonp方法的简单总结: 例子:假如想获取京东的评论的数据,可以在京东的评论面板打开network找到和ajax请求相关的有回调函数callback的请求url, 如找到一个url, 如: 在响应里可以找到回调函数对应的方法: 这是在服务器上写入的方法用来传输数据. 例如获取到的url为 https://club.jd.com/comment/productPageComment

TabHost 简单使用方法

package com.google.tabhost; import android.app.TabActivity; import android.os.Bundle; import android.view.LayoutInflater; import android.widget.TabHost; public class HelloTabHost extends TabActivity { /** Called when the activity is first created. */