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中的行数

 
 
posted @ 2024-01-03 13:30  黑大帅gs  阅读(8)  评论(0编辑  收藏  举报