awk常见用法

 前言

 Awk是一种处理文本文件的语言,是一个强大的文本分析工具。Awk命令还提供了许多内置函数,可以用于字符串操作、数学计算等。它是Linux三剑客之首。主要作用用于处理文本,并生成格式化的输出。当谈到文本处理和数据操作时,Linux中的awk命令是一个非常有用的工具。Awk是一种强大的文本处理工具,它可以从文件或标准输入中读取数据,对数据进行处理,并生成格式化的输出。

awk中的常用变量

$n:当前记录的第n个字段,字段间由FS分隔

$0: 保存当前行的内容

NR: 记录号(行号),每处理完一条记录,NR值加1

NF: 保存记录的字段数(总共保存的列数),$1,$2...$100

FS: 输入字段分隔符,默认空格

OFS:输出字段分隔符

RS:记录分隔符(默认是一个换行符)

以下是Linux中awk命令的五个常见用法,每个用法都附带有代码和输出示例。

1. 打印指定列

awk命令可以用于从文件或标准输入中提取指定的列。下面的例子演示了如何打印文件中的第一列和第三列:

$ cat data.txt
John Doe 25
Jane Smith 30
Tom Johnson 35

$ awk '{print $1, $3}' data.txt
John 25
Jane 30
Tom 35

2. 使用条件筛选行

awk命令可以根据条件筛选行并进行处理。下面的例子演示了如何筛选出年龄大于等于30岁的行:

$ cat data.txt
John Doe 25
Jane Smith 30
Tom Johnson 35

$ awk '$3 >= 30' data.txt
Jane Smith 30
Tom Johnson 35

3. 自定义分隔符

awk命令默认使用空格作为字段分隔符,但是可以根据需要自定义分隔符。下面的例子演示了如何使用冒号作为字段分隔符,并打印第二列:

$ cat data.txt
John:Doe:25
Jane:Smith:30
Tom:Johnson:35

$ awk -F ':' '{print $2}' data.txt
Doe
Smith
Johnson

4. 使用内置变量

awk命令提供了许多有用的内置变量,可以在处理过程中使用。其中,NF表示当前行的字段数量,NR表示当前行的行号。下面的例子演示了如何打印每行的行号和字段数量:

$ cat data.txt
John Doe 25
Jane Smith 30
Tom Johnson 35

$ awk '{print "Line:", NR, "Fields:", NF}' data.txt
Line: 1 Fields: 3
Line: 2 Fields: 3
Line: 3 Fields: 3

5. 使用内置函数

awk命令还提供了许多内置函数,可以用于字符串操作、数学计算等。下面的例子演示了如何使用内置函数计算文件中所有数字的总和:

$ cat data.txt
10
20
30
40

$ awk '{sum += $1} END {print "Sum:", sum}' data.txt
Sum: 100

通过灵活使用awk命令,您可以轻松处理和操作文本数据。无论是简单的数据提取还是复杂的数据处理,awk都是一个非常强大的工具。

你可能感兴趣的:(linux,linux,awk)