linux命令awk

linux命令awk

Awk的基本功能就是查找具某种模式的文本行(或者其他单位的文本)。当匹配某个模式后,awk会对该行执行指定的动作。Awk然后继续输入行,直到文件输入处理完毕。

awk 命令的大致结构如下:

1
2
3
4
5
awk 'program' inputfile1 inputfile2 inputfile3 ...
# 也可以运行awk程序,不带输入文件
awk 'program'
## awk会使程序导向到标准输入,直到你输入Ctrl-d 来表示‘end-of-file’
## 在非POSIX 操作系统中,‘end-of-file’有可能不同,如在OS/2 中则是Ctrl-z

注意,awk是标准的管道, 如果 ‘program’ 中没有和输入有关的逻辑,awk是不会读取输入的.例如:

awk 'BEGIN { print "Hello World!" }' 不会读取任何输入。
awk '{print}' 会持续读取输入,直到 Ctrl-d

如果awk 程序的程序很长,那么可以使用文件中的代码来执行awk

1
awk -f 'program-file' inputfile1 inputfile2 inputfile3 ...

举个例子:

  1. 创建文件hello
1
2
#! /bin/awk -f
BEGIN { print "Hello World!" }
  1. 使用awk文件
1
2
$ awk -f hello
Hello World!

也可以直接对脚本赋权 chmod +x hello,然后就可以直接执行 hello。

awk 基础