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的基本使用的主要内容,如果未能解决你的问题,请参考以下文章