乐趣区

关于awk:Linuxawk命令介绍

引言

Awk是一种用于高级文本处理的通用脚本语言,其次要用作报告和剖析工具,与大多数其余程序性编程语言不同,Awk是数据驱动的,也就是说须要定义一组针对输出文本要执行的操作,而后其获取输出数据,对其进行转换,而后将后果发送到规范输入。

语法

awk [-F fs] [-v var=value] ['prog' | -f progfile] [file ...]

参数

  • -F fs: 将输出字段分隔符设置为正则表达式fs
  • -v var=value: 在执行 awk 程序之前,将值赋值给变量var
  • 'prog': awk程序。
  • -f progfile: 指定文件 progfile,其中蕴含要执行的awk 程序。
  • file ...: 由指定的 awk 程序处理的文件。

示例

示例文件 example.txt 文件内容如下:

Bucks Milwaukee    60 22 0.732 
Raptors Toronto    55 24 0.707 
76ers Philadelphia 51 31 0.622
Celtics Boston     33 33 0.598
Pacers Indiana     30 34 0.585

输入 example.txt 的第 3 个字段。

awk '{print $3}' example.txt
# 60
# 55
# 51
# 33
# 30

应用正则表达式匹配出以 R 结尾的组。

awk '/^R/ {print $1,$2,$3,$4}' example.txt
# Raptors Toronto 55 24

应用 BEGIN 以及 END 输入在解决记录之前与之后执行的操作,处理过程为输入第二个字段蕴含 Tor 的组。

awk 'BEGIN {print"Start Processing"}; $2 ~ /Tor/ {print $1,$2,$3,$4}; END {print"End Processing"}' example.txt
# Start Processing
# Raptors Toronto 55 24
# End Processing

每日一题

EveryDay/awk 命令.md at master · WindrunnerMax/EveryDay · GitHub

关联

[[【Linux】getline 解释]]

参考

https://linuxize.com/post/awk…

https://www.computerhope.com/…

https://www.runoob.com/linux/…

退出移动版