awk的基本使用

Posted 一起来学python

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了awk的基本使用相关的知识,希望对你有一定的参考价值。

awk 是一种文本处理工具,常用于对文件的行、列进行操作和筛选,以下是 awk 常用参数及其对应的例子:

-F: 指定分隔符

例如,假设我们有一个以逗号分隔的文件 example.csv,要按照逗号将每行数据拆分为多个字段,可以使用如下命令:

awk -F \',\' \'print $1, $2\' example.csv

这个命令表示使用 , 作为分隔符,从文件 example.csv 中读取每行数据,并打印第一列和第二列。

NR: 行数计数器

例如,假设我们有一个文件 example.txt,要输出该文件的前 5 行,可以使用如下命令:

awk \'NR <= 5 print\' example.txt

这个命令表示读取文件 example.txt 的每一行,当行数不大于 5 时,打印该行内容。

NF: 字段数计数器

例如,假设我们有一个以制表符分隔的文件 example.tsv,要找出其中字段数最多的行,并输出该行的内容和字段数,可以使用如下命令:

awk -F \'\\t\' \'if (NF > max_nf) max_nf = NF; max_line = $0 END print max_line, max_nf\' example.tsv

这个命令表示使用制表符作为分隔符,遍历文件 example.tsv 中的每一行,记录字段数最多的行和对应的字段数,最后输出记录下来的最多字段数的行和对应的字段数。

$0: 当前行内容

例如,假设我们有一个文件 example.txt,要将其中所有行转换为大写并输出,可以使用如下命令:

awk \'print toupper($0)\' example.txt

这个命令表示将文件 example.txt 中的每一行都转换成大写,并打印出来。

BEGIN 和 END: 在处理文件前和处理文件后执行的命令

例如,假设我们有一个文件 example.txt,要在其中输出所有行的和,可以使用如下命令:

awk \'BEGIN sum = 0 sum += $1 END print sum\' example.txt

这个命令表示在处理文件前初始化变量 sum 为 0,在处理每一行时将该行的第一列加入到 sum 中,最后在处理文件结束时输出 sum。

以上是关于awk的基本使用的主要内容,如果未能解决你的问题,请参考以下文章

1-27 awk 基本使用

awk的基本用法

shell awk 的基本使用

浅谈awk的基本用法

awk常见基本使用

linux三剑客的基本使用——grep、sed、awk