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。

posted @ 2023-03-17 23:53  公众号python学习开发  阅读(57)  评论(0编辑  收藏  举报