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.打印整行:
awk '{print}' file.txt
这个命令将打印文件
file.txt
中的每一行2.打印特定列:
awk '{print $2}' file.txt
将打印文件file.txt
中的第二列内容。
3.计算行数
awk 'END {print NR}' file.txt
打印文件file.txt
中的总行数
awk '{print NR}' file.txt
打印文件file.txt
中的每行行数
注:按照awk的语法中,若有模式需要匹配的原因导致某几行无法打印,其对应的行数不变
4.计算行字段数量NF
awk '{print NF"\t"$1"\t"$NF}' file.txt
打印文件file.txt
中的行字段数量,以及第一列,和最后一列,打印的结果每列以 tab
键分割显示
注意:若未带分隔符-F,默认以空格或者 tab
键为分隔符,进行分割统计
中级
1.读取/etc/passwd文件,以分隔符':'切分,打印第一列
#head -n2 /etc/passwd|awk -F':' '{print $1}'
root
bin
-F
选项的作用是指定分隔符。如果不加 -F
选项,则以空格或者 tab
为分隔符
2.单词数量、字符数量等计数
打印文件file.txt
中的行数