使用AWK过滤和计算CSV文件

作者:佚名 上传时间:2023-05-29 运行软件:AWK 软件版本:未指定 版权申诉

这个示例代码演示了如何使用AWK工具对CSV文件进行过滤和计算,它通过读取输入文件,查找匹配的行并对其中的数据执行计算,并输出结果到终端。其实现方式利用了AWK内置的语言特性和命令选项。

#!/usr/bin/awk -f
# usage example: awk -f csv.awk -v col=2 -v val=10 -v op=sum input.csv

# parse command line options
BEGIN {
  if (ARGC < 5) {
    print "Usage: awk -f csv.awk -v col=<column> -v val=<value> -v op=<operation> <input.csv>"
    exit 1
  }
  col = ARGV[2]
  val = ARGV[4]
  op = ARGV[6]
  delete ARGV[1]; delete ARGV[2]; delete ARGV[3]; delete ARGV[4]; delete ARGV[5]; delete ARGV[6]
}

# process input file
NR == 1 {
  # process header
  split($0, headers, ",")
  for (i = 1; i <= length(headers); i++) {
    if (headers[i] == col) {
      col_index = i
      break
    }
  }
} 
NR > 1 {
  # process rows
  split($0, row, ",")
  if (row[col_index] == val) {
    if (op == "sum") {
      sum += row[col_index+1]
    }
    else if (op == "avg") {
      sum += row[col_index+1]
      count += 1
    }
    else if (op == "max" && row[col_index+1] > max) {
      max = row[col_index+1]
    }
    else if (op == "min" && row[col_index+1] < min) {
      min = row[col_index+1]
    }
  }
}

# print results
END {
  if (op == "sum") {
    print sum
  }
  else if (op == "avg") {
    print sum / count
  }
  else if (op == "max") {
    print max
  }
  else if (op == "min") {
    print min
  }
}

免责申明:文章和图片全部来源于公开网络,如有侵权,请通知删除 server@dude6.com

用户评论
相关推荐
使AWKCSV
这个示例代码演示了如何使用AWK工具对CSV文件进行过滤和计算,它通过读取输入文件,查找匹配的行并对其中的数据执行计算,并输出结果到终端。其实现方式利用了AWK内置的语言特性和命令选项。#!/usr
未指定
AWK
2023-05-29 21:29
使AWKCSV中的数据
该示例代码演示如何使用AWK命令过滤和统计CSV文件中的数据。该脚本能够读取CSV文件,识别每列的数据类型,并对每列进行统计计算、去重和排序等操作。# 设定分隔符为逗号BEGIN {FS=&quo
AWK 5.0.1
AWK
2023-05-19 20:27
使awk命令编辑CSV
展示利用awk命令对CSV文件进行过滤和编辑的实现方式,能够解决CSV文件处理中的常见问题。此示例代码使用awk命令实现在CSV文件中查找并输出特定行和列的数据,并将其写入新文件中。awk -F,
GNU Awk 5.0.1
GNU Awk
2023-04-20 10:27
使awkCSV中空行
介绍如何使用awk命令过滤CSV文件中的空行,从而解决在读取该文件时出现的问题。首先需要了解awk的工作原理。awk 'NF!=0' file.csv > new_file.csv上述代码
GNU Awk 4.1.4
GNU Awk
2023-04-29 17:18
使awkCSV中的行
本示例代码展示了如何使用awk过滤CSV文件中的行,只保留第一列是数字的行。该实现方式使用了awk的内置功能,包括分隔符和条件判断。#!/usr/bin/awk -fBEGIN { FS=OFS=
awk 4.0.2
awk
2023-04-30 01:53
使Perl从CSV
本示例代码演示如何使用Perl从CSV文件中筛选出符合条件的数据,并计算其总和。代码使用Text::CSV_XS解析CSV文件,使用grep函数过滤符合条件的数据,并使用List::Util中的sum
Text::CSV_XS 1.43, List::Util 1.58
Perl语言
2023-04-02 09:55
使awk命令处理csv中的数据
该示例代码使用awk命令对csv文件中的数据进行筛选和处理,包括选择特定列的数据、筛选特定条件下的数据等。实现方式为在awk命令中使用特定的选项和语法。# 选取第一列和第三列,输出每行数据awk
GNU AWK 5.0.1
GNU Awk
2023-03-31 13:46
使awk命令在CSV中查找数据
这段awk代码展示了如何在CSV文件中使用awk命令查找和过滤数据。CSV文件是以逗号为分隔符的文本文件,通常用于存储表格数据。这个例子展示了如何使用awk命令过滤掉特定条件下的行。awk -F&q
awk 4.2.1
awk
2023-04-19 12:00
使AWK实现内容
AWK是一种强大的文本处理工具,可以通过简洁的脚本实现文件内容的过滤和统计。以下示例代码演示如何使用AWK从文本文件中提取特定信息,并计算其出现次数。# AWK脚本:统计文件中以空格分隔的第一列的出
AWK 4.2.1
AWK编译器
2023-11-24 15:28
使awk命令解析CSV
本示例将演示如何使用awk命令解析CSV文件并计算第二列的数字总和,其中FS参数指定分隔符为逗号。awk -F ',' '{sum+=$2} END {print sum}' sample.csv
GNU Awk 5.0.1
GNU Awk
2023-05-29 22:15