awk 命令
# awk 命令
awk 是一种用于处理文本的编程语言工具。它将文件作为记录序列处理。在一般情况下,文件内容的每行都是一个记录。每行内容都会被分割成一系列的域,因此,我们可以认为一行的第一个词为第一个域,第二个词为第二个,以此类推。
# print 命令
print 命令用于输出文本。其输出文本总是以输出记录分隔符
分割,其默认是换行符
。该命令的最简形式是:
print
:会输出当前记录的内容。在 awk 中,记录会被分割成域
,它们可以被分别显示或者使用。
例:
ps -ef | awk '{print}'
1
print $1
:显示记录的第一个域
例:
# 显示/sbin/init进程的所属用户
ps -ef | grep "/sbin/init" | grep -v grep | awk '{print $1}'
1
2
2
print $2, $3
: 显示记录的第 2,3 个域,并以预定义的输出域分隔符
分割,其默认是一个空格符
例:
# 显示/sbin/init进程的进程ID和父进程ID
ps -ef | grep "/sbin/init" | grep -v grep | awk '{print $2, $3}'
1
2
2
$0
是指整个记录,print
和print $0
是等效的。
# 常用函数
toupper()
: 字符转大小tolower()
: 字符转小写length()
: 返回字符串长度
# 常见用法
格式:
# 对filename按照action处理
$ awk [action] [filename]
1
2
2
例如:
# 将demo.txt每一行打印出来
awk '{print $0}' demo.txt
1
2
2
指定文件中字段的分隔符,按照这个分隔符划分域:
# 指定分隔符是':'
awk -F ':' '{print toupper($1)}' demo.txt
1
2
2
上次更新: 2022/06/17, 07:22:19