【Linux基础】awk命令

1.awk命令说明

(1)awk是行处理器:

相比较屏幕处理的优点,在处理庞大文件时不会出现内存溢出或是处理缓慢的问题,通常用来格式化文本信息

(2)awk处理过程:

依次对每一行进行处理,然后输出

(3)awk命令形式:

awk [-F|-f|-v] ‘BEGIN{} //{command1; command2} END{}’ file

[-F|-f|-v]   大参数,-F指定分隔符,-f调用脚本,-v定义变量 var=value

‘  ‘          引用代码块

BEGIN   初始化代码块,在对每一行进行处理之前,初始化代码,主要是引用全局变量,设置FS分隔符

//           匹配代码块,可以是字符串或正则表达式

{}           命令代码块,包含一条或多条命令

;          多条命令使用分号分隔

END      结尾代码块,在对每一行进行处理之后再执行的代码块,主要是进行最终计算或输出结尾摘要信息

2.特殊要点说明:

$0           表示整个当前行

$1           每行第一个字段

NF          字段数量变量

NR          每行的记录号,多文件记录递增

FNR        与NR类似,不过多文件记录不递增,每个文件都从1开始

\t            制表符

\n           换行符

FS          BEGIN时定义分隔符

RS       输入的记录分隔符, 默认为换行符(即文本是按一行一行输入)

~            匹配,与==相比不是精确比较

!~           不匹配,不精确比较

==         等于,必须全部相等,精确比较

!=           不等于,精确比较

&&      逻辑与

||             逻辑或

+            匹配时表示1个或1个以上

/[0-9][0-9]+/   两个或两个以上数字

/[0-9][0-9]*/    一个或一个以上数字

FILENAME 文件名

OFS      输出字段分隔符, 默认也是空格,可以改为制表符等

ORS        输出的记录分隔符,默认为换行符,即处理结果也是一行一行输出到屏幕

-F‘[:#/]‘   定义三个分隔符

3.print使用

awk ‘{print $0}‘  /etc/passwd  //打印整行
awk -F: ‘{print $1; print $2}‘   /etc/passwd  //将每一行的前二个字段,分行输出
awk  -F: ‘{print $1,$3,$6}‘ OFS="\t" /etc/passwd        //输出字段1,3,6,以制表符作为分隔符


原文地址:https://www.cnblogs.com/badboy200800/p/10361878.html

时间: 2024-10-07 08:46:37

【Linux基础】awk命令的相关文章

【系统知识点】linux基础&优化命令

Xshell上传下载服务器的文件: yum -y install lrzsz sysstat//安装对应软件 sz XXXX//下载 rz XXXX//上传 创建用户: Useradd vrfxie //创建用户 -c comment 指定一段注释性描述. -d 目录 指定用户主目录,如果此目录不存在,则同时使用-m选项,可以创建主目录. -g 用户组 指定用户所属的主用户组. -G 用户组,用户组 指定用户所属的附加组. -s Shell文件 指定用户的登录Shell. #可以设置为/sbin

Linux基础文件管理命令之ls,cd

Linux中提供了大量的命令,使用他们可以简化我们的工作,也许在图形化界面中要点击鼠标十几下操作,而在linux系统中一条命令就可以轻松解决.所以,在Linux系统上工作离不开使用系统提供的命令.要想真正理解Linux系统,就必须从Linux命令学起. linux系统中的命令格式一般如下: 命令格式:   命令  选项  参数     选项:       短选项: -       多个选项可以组合:-a -b = -ab       长选项: -- 参数:命令的作用对象 下面主要介绍ls和cd命

Linux基础文件管理命令之rm,mv,cp,touch

在linux系统下,一切皆文件,就连光盘也看作文件,要使用光盘首先要先建立一个目录,然后通过挂载来操作这个光盘,就连鼠标,键盘都是被看作文件.所以学习文件的相关操作命令是很重要的. rm命令 rm是常用的命令,该命令的功能为删除一个目录中的一个或多个文件或目录,它也可以将某个目录及其下的所有文件及子目录均删除.对于链接文件,只是删除了链接,原有文件保持不变. 注:rm是一个危险的命令,使用的时候要特别小心,尤其对于新手,否则整个系统就会毁在这个命令,比如以root身份在根目录下执行rm * rf

Linux基础tree命令

tree命令以树状图列出文件目录结构.不过某些Linux上(Centos 6.4)没有tree命令,本文将介绍安装方法. 常用参数: tree -d 只显示目录. tree -L 1 只显示第一层目录. [[email protected] tree-1.7.0]# tree -bash: tree: command not found 安装tree命令: [[email protected] 下载]# tree -bash: tree: command not found 到ftp://mam

Linux下awk命令详解

grep 或 egrep 或awk 过滤两个或多个关键词: grep -E '123|abc' filename // 找出文件(filename)中包含123或者包含abc的行 egrep '123|abc' filename //用egrep同样可以实现 awk '/123|abc/' filename // awk 的实现方式 假如某个广告点击数据记录在文件里面,文件中每一行数据由'时间','uid'两个字段组成,要求每分钟统计某个uid带来的点击量并计入数据库,可以用shell来实现该功

Linux三剑客——awk命令

awk命令 awk命令用于Linux下的文本处理.数据可以来自文件或标准输入,支持正则表达式等功能,是Linux下强大的文本处理工具. 示例 #$1与$3相连输出,不分隔 [[email protected] ~]# awk -F ":" '{print $1 $3}' /etc/passwd #多了一个逗号,$1与$3使用空格分隔 [[email protected] ~]# awk -F ":" '{print $1,$3}' /etc/passwd #显示每行

Linux基础入门级命令文档

Linux系统上命令的使用格式,及常用命令示例 1.命令提示符 登录系统后,第一眼看到的内容是: [[email protected] ~]# 上图就是 Linux 系统的命令提示符.那么,这个提示符的含义是什么呢? []:这是提示符的分隔符号,没有特殊含义. root:显示的是当前的登录用户,笔者现在使用的是 root 用户登录. @:分隔符号,没有特殊含义. node1:当前系统的简写主机名node1. ~:代表用户当前所在的目录,此例中用户当前所在的目录是家目录. ]#:命令提示符,Lin

Linux的awk命令

简介 awk是一个强大的文本分析工具,相对于grep的查找,sed的编辑,awk在其对数据分析并生成报告时,显得尤为强大.简单来说awk就是把文件逐行的读入,以空格为默认分隔符将每行切片,切开的部分再进行各种分析处理. awk有3个不同版本: awk.nawk和gawk,未作特别说明,一般指gawk,gawk 是 AWK 的 GNU 版本. awk其名称得自于它的创始人 Alfred Aho .Peter Weinberger 和 Brian Kernighan 姓氏的首个字母.实际上 AWK

Linux shell编程命令-Linux基础环境命令学习笔记

1.正则表达式 1)^开始 *前一个字符重复0次以上 + 1次以上 ? 0次或者1次 . 一个任意字符(.*连用) {m,n} m到n次 [0-9][a-z] 任意数字或字母 $结束字符 2)sed和awk命令 sed '匹配条件/执行的动作' /etc/passwd sed 's/old/new/g' awk -F: '{print $1}' /etc/passwd 1表示第一列,2表示第二列 -F:表示分隔符为: 2.变量 1)环境变量 系统环境变量(/etc/profile) 用户环境变量

Linux的awk命令详解

简介 awk是一个强大的文本分析工具,相对于grep的查找,sed的编辑,awk在其对数据分析并生成报告时,显得尤为强大.简单来说awk就是把文件逐行的读入,以空格为默认分隔符将每行切片,切开的部分再进行各种分析处理. awk有3个不同版本: awk.nawk和gawk,未作特别说明,一般指gawk,gawk 是 AWK 的 GNU 版本. awk其名称得自于它的创始人 Alfred Aho .Peter Weinberger 和 Brian Kernighan 姓氏的首个字母.实际上 AWK