Linux常用命令使用(二)----awk
1 awk是什么
AWK是一种非常强大的文本处理工具,广泛用于UNIX和类UNIX系统。它主要用于模式扫描和处理。
2 awk的使用
2.1 awk的语法
awk [options] 'pattern {action}' file
- options:可选参数,比如
-F
用于指定字段分隔符。 - pattern:指定要搜索的模式。它可以是字符串、正则表达式或是逻辑条件表达式。
- action:当找到匹配的模式时要执行的动作,通常是一些打印、计算或文本处理命令。
- file:输入文件。
2.2 awk的内置变量
NR
:表示当前处理的是第几行(行号)。NF
:表示当前行有多少字段。FS
:字段分隔符,默认是空格和制表符。OFS
:输出字段分隔符,默认也是空格。FILENAME
:当前输入文件的名字。
2.3 awk的字段引用
- 使用
$
符号引用字段,如$1
表示第一个字段,$2
表示第二个字段,以此类推。 $0
表示整行内容。
2.4 字符串匹配
2.5 流程控制语句
2.5
3.awk的用法实例
初级
1.打印整行:
1 | awk '{print}' file .txt |
这个命令将打印文件
file.txt
中的每一行2.打印特定列:
1 | awk '{print $2}' file .txt |
将打印文件file.txt
中的第二列内容。
3.计算行数
1 | awk 'END {print NR}' file .txt |
打印文件file.txt
中的总行数
1 | awk '{print NR}' file .txt |
打印文件file.txt
中的每行行数
注:按照awk的语法中,若有模式需要匹配的原因导致某几行无法打印,其对应的行数不变
4.计算行字段数量NF
1 | awk '{print NF"\t"$1"\t"$NF}' file .txt |
打印文件file.txt
中的行字段数量,以及第一列,和最后一列,打印的结果每列以 tab
键分割显示
注意:若未带分隔符-F,默认以空格或者 tab
键为分隔符,进行分割统计
中级
1.读取/etc/passwd文件,以分隔符':'切分,打印第一列
1 | #head -n2 /etc/passwd|awk -F':' '{print $1}'<br>root<br>bin |
-F
选项的作用是指定分隔符。如果不加 -F
选项,则以空格或者 tab
为分隔符
2.单词数量、字符数量等计数
打印文件file.txt
中的行数
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 上周热点回顾(2.24-3.2)