各位老铁们好,相信很多人对Linux入门系列awk命令详解都不是特别的了解,因此呢,今天就来为大家分享下关于Linux入门系列awk命令详解以及的问题知识,还望可以帮助大家,解决大家的一些困惑,下面一起来看看吧!
使用方法
awk [options] ‘{pattern + action}’ filenamepattern 表示awk 在数据中查找的内容; action是一系列命令,当找到匹配的内容时需要执行;当有多个命令时,每个命令必须用“;”分隔; filename代表等待处理的文件;
调用awk的三种方式
命令行模式awk [-F 字段分隔符] ‘命令’ 文件名其中command 是真正的awk 命令,-F 代表域分隔符是可选的。文件名是等待处理的文件
shell脚本方法将所有awk命令写入一个文件,并使用具有X权限的文件,然后使用awk命令解释器作为脚本的第一行,这意味着可以替换开头的#!/bin/bash脚本的。 #!/bin/awk
将所有awk命令插入到一个单独的文件中,然后使用-f调用awk -f awk-script-file filename -f指定要加载的awk脚本,它是一个文件。文件名是等待处理的文件
入门实例
显示/etc/passwd文件中的用户名[root@apache ~]# awk -F ‘:’ ‘{print $1}’ /etc/passwdrootbindaemonadm. awk的工作流程如下:看完后一行(末尾带有“\n”),根据-F指定的分隔符将该行分为N个区域,$0代表所有区域,$1代表第一个域,$2代表第二个域,以此类推,$n代表第n个域。
搜索/etc/passwd 文件中所有包含“root”的行并显示其shell [root@apache ~]# awk -F: ‘/root/{print $1,$7}’ /etc/passwdroot /bin/bashoperator /sbin/nologin[root@apache ~]#注:’//’之间支持正则表达式。如果只有pattern而没有action,那么awk会默认打印出匹配的行。
[root@apache ~]# awk ‘/root/’ /etc/passwdroot:x:0:0:root:/root:/bin/bashoperator:x:11:0:operator:/root:/sbin/nologin[root@apache ~]#[root@ap ~]# awk -F: ‘/^ root /{print $1,$7}’ /etc/passwdroot /bin/bash[root@apache ~]#awk 内置变量ARGC
命令行参数个数
ARGV
命令行参数排列
环境
支持在队列中使用系统环境变量
文件名
Awk 正在处理的文件的名称
FNR
浏览文件中的记录数
FS
设置字段分隔符,相当于“-F”选项字段分隔符
核因子
浏览记录的字段数(行); [字段数是字段总数除以当前行]
NR
读取的记录数(行)【所有行的记录数,即多个文件的话,这是总数】
FNR
如果只有一个文件作为输入,则该文件中已处理的行数; [文件]
欧福斯
输出字段分隔符
口服补液盐
输出行分隔符
RS
控制记录分隔符(Record Separator)
显示awk处理的文件名、每行的行号、每行的列数以及对应行的全部内容:(以/etc/passwd文件为例)[root@apache ~] # awk -F: ‘{print ‘ 文件名:’ 文件名,’LNO。’ NR,“CNO”。 NF,’Content:’ $0}’ /etc/passwdFilename:/etc/passwd LNO.1 CNO.7 Content:root:x:0:0:root:/root:/bin/bashFilename :/etc/passwd LNO.2 CNO.7 Content:bin: x:1:1:bin:/bin:/sbin/nologinFilename:/etc/passwd LNO.3 CNO.7 内容:daemon:x:2:2:daemon:/sbin: /sbin/nologinFilename:/etc/passwd LNO.4 CNO.7 内容:adm:x:3:4:adm: /var/adm:/sbin/nologinFilename:/etc/passwd LNO.5 CNO.7 Content:lp:x:4:7:lp:/var/中打印spool/lpd:/sbin/nologinawk 也可以用C语言中的printf代替。当输出格式比较复杂时,使用printf函数比print函数更直观,如下:
[root@apache ~]# awk -F: ‘{printf(‘%d\n’,NR)}’ /etc/passwd
统计/etc/passwd下的人数: 条件语句:awk中的条件语句是从C借来的
语法: if (条件) {then-body} else {else-body}
循环语句:循环语句也与C中相同,支持while、do/while、for、continue、break等关键字。
while (condition) {statement1;statement2}do {statement} while()for (i=0;i=9;i++) {statement}for (i in array) {statement}break 和continue 常用于循环中;
原创文章,作者:小su,如若转载,请注明出处:https://www.sudun.com/ask/204960.html
用户评论
在哪跌倒こ就在哪躺下
这个系列太棒了!学习 Linux 一直是我的目标,这个《awk 命令详解》简直太实用了,终于明白 awk 能做些什么。现在要好好练习一遍,应用到实际项目中。
有5位网友表示赞同!
淡抹烟熏妆丶
看完这篇博客后,对 awk 终于有了基本的理解!以前总觉得它像一个谜团,现在知道它是强大的文本处理工具。以后可以用来清洗数据、分析日志文件了,真是太棒了!
有20位网友表示赞同!
拉扯
这篇文章讲解得很清晰,即使是零基础的也能看懂。之前学过其他脚本语言,感觉 awk 的用法和语法还是比较独特的地方。希望后续可以分享更多使用场景,让学习更直观!
有6位网友表示赞同!
箜明
Linux 入门系列挺不错,不过感觉awk命令确实有点难上手啊… 文章写的很详细,但对于完全没有编程基础的人来说,还是有些抽象。希望能添加更多实例和代码讲解,帮助学习者更快理解!
有19位网友表示赞同!
在哪跌倒こ就在哪躺下
我之前也有用过 awk 处理文本文件,这篇博客让我了解到还有很多我不熟悉的用法。比如说那些参数选项,原来可以用来做一些更高级的操作!受益匪浅啊!
有9位网友表示赞同!
柠栀
awk 命令确实挺常用的,这篇讲解还不错,至少把基础的语法和功能都涵盖了。不过我希望能够在之后的博文中,分享更多实际项目中的应用案例,这样更容易理解它的实用性!
有15位网友表示赞同!
念旧情i
这个系列真是太棒了!我一直想学习 Linux 基础知识,尤其是 awk 命令,因为经常需要用它来处理数据文件。这篇博客讲解得很好,我跟着教程试了一下,竟然成功运行了!感觉自己离成为 Linux 高手又近了一步!
有16位网友表示赞同!
浮殇年华
我对awk命令一直很头疼,总觉得它太复杂了。看了这篇文章后,对它的用法有了些许了解,但还是觉得需要反复练习才能真正掌握。希望作者能提供一些更具体的代码示例,以便更好地学习和应用!
有6位网友表示赞同!
自繩自縛
作为一名 Linux 初学者,我很感谢作者的讲解,让我能够初步理解 awk 命令的功能和作用。不过我还是希望能看到更直观的代码示例和实例解析,这样更容易理解 awk 的使用方法!
有15位网友表示赞同!
無極卍盜
Linux 入门系列确实很实用,帮我入门了不少基础知识。awk 命令确实挺强大,这篇博文介绍的很透彻,让我明白它可以用来处理各种文本文件的问题。以后我会经常用到!
有5位网友表示赞同!
开心的笨小孩
这篇文章写的太棒了!终于明白怎么用 awk 来提取特定字段,还能筛选数据。原来它不仅仅是简单的文本替换工具,还有那么多强大的功能!感觉自己学习 Linux 的步伐又快了一步!
有8位网友表示赞同!
裸睡の鱼
对于没有编程基础的同学来说,这篇博文可能有点难度,因为它对一些语法和概念做出的解释比较抽象。希望作者能添加更多通俗易懂的例子,让新手更容易上手。
有10位网友表示赞同!
长裙绿衣
Linux 入门系列值得推荐!awk 命令虽然看起来复杂,但其实掌握了基本语法后,就能解决很多实际问题。这篇文章讲解很有条理,把主要功能都介绍清楚了,非常实用!
有12位网友表示赞同!
淡淡の清香
这篇博文对 awk 命令解释得非常清晰详细,涵盖了从基础语法到高级操作的各个方面。作为一名 Linux 爱好者,我对它非常感兴趣,并且已经开始尝试在项目中使用它。希望作者能够继续分享更多关于 Linux 的相关知识!
有20位网友表示赞同!
微信名字
Linux 入门系列很棒!awk 命令确实挺实用的,这篇博文让我了解到它可以用在很多不同的场景中。我已经迫不及待想把学到的知识应用到我的工作中去了!
有18位网友表示赞同!
浮世繁华
我曾经使用过 awk 命令,但从来没有真正理解过它的原理和用法。看了这篇文章后,终于明白了那些看似复杂的语法到底是什么意思,感觉自己对 Linux 编程又更进一步了解了!
有19位网友表示赞同!
相知相惜
这篇博文的讲解非常棒,让我对 awk 命令有了更深入的理解。希望作者能够提供更多关于 awk 命令的应用实例,这样可以帮助我们更好地掌握它的使用方法和技巧!
有10位网友表示赞同!