【嵌入式开发 Linux 常用命令系列 7 -- awk 常用方法】

文章目录

    • AWK 功能介绍
    • awk 与 $ 关系
    • awk 与其他命令组合使用
    • awk 常用命令参数

上篇文章:嵌入式开发 Linux 常用命令系列 6 – 字符提取 cut 命令使用
下篇文章:嵌入式开发 Linux 常用命令系列 8 – 二进制转为16进制常用命令

AWK 功能介绍

AWK是一种强大的文本分析工具,最初是由 Aho, Weinberger 和 Kernighan 设计和实现的,AWK 的名称就来源于他们三人的姓氏首字母。在Linux环境下,AWK是处理文本数据的重要工具之一。
以下是AWK的主要功能:

  • 数据抽取:AWK可以抽取文件中的数据并输出到命令行。
  • 数据转换:AWK可以将输入数据转换为用户需要的格式。
  • 报告生成:AWK能够生成格式化的报告,它包含用户选择的特定数据。
  • 数据操作:AWK可以对数据进行各种操作,例如添加,删除,修改等。
  • 文本处理:AWK强大的字符串处理功能使得它在文本分析,数据抽取和报告生成中非常有用。

AWK的使用实例非常多,下面是一些常见的例子:

  • 打印文件的某一列:
    假设我们有一个文本文件(file.txt),内容如下:
apple red 4 
banana yellow 6 
grape purple 10 

如果我们想打印出所有水果的名称,我们可以使用以下命令:

awk '{print $1}' file.txt 

这个命令将打印出第一列的数据:

apple 
banana 
grape
  • 筛选出特定行:
    如果我们想找出所有数量超过5的水果,我们可以使用以下命令:
awk '$3 > 5 {print $0}' file.txt 

这个命令将打印出第三列数值超过5的行:

banana yellow 6 
grape purple 10
  • 计算和:
    如果我们想计算所有水果的总数量,我们可以使用以下命令:
awk '{sum+=$3} END {print sum}' file.txt 

这个命令将打印出所有水果数量的总和:

20

这只是AWK的冰山一角,AWK的功能非常强大,可以处理更复杂的文本处理任务。

awk 与 $ 关系

在 AWK 中,“$” 符号用于引用字段的值。AWK 默认使用空格作为字段分隔符,将每行分割为多个字段,并用 “$” 符号加上字段编号来引用每个字段的值。

例如,“$1” 表示第一个字段,“$2” 表示第二个字段。

这是一个例子:

echo "apple red 4" | awk '{print $1}'

这个命令会输出 “apple”,因为 “$1” 引用了输入行的第一个字段。

另外,“$0” 表示整行的内容。

如果我们想改变字段的分隔符,我们可以使用 “-F” 选项。例如,下面的命令使用冒号作为字段分隔符:

echo "apple:red:4" | awk -F':' '{print $1}'

这个命令会输出 “apple”。

awk 与其他命令组合使用

AWK 可以和许多其他命令一起使用以高效地处理文本数据。这里有几个例子:

  • 使用管道将其他命令的输出作为 AWK 的输入:
ls -l | awk '{print $9}'

这个命令列出了当前目录下所有文件和目录的名字。

  • 将 AWK 的输出作为其他命令的输入:
awk '{print $1}' file.txt | sort 

这个命令打印出 file.txt 的第一列,并将其输出排序。

  • AWK 和 grep 的组合使用:
ps aux | grep 'httpd' | awk '{print $2}' 

这个命令将返回所有 httpd 进程的进程 ID。

  • AWK 和 sed 的组合使用:
echo "apple:red:4" | awk -F':' '{print $2}' | sed 's/red/green/' 

这个命令首先使用 AWK 提取出 “red”,然后用 sed 将其替换为 “green”。

这些只是一些基本示例,实际上 AWK 可以与许多其他 Unix/Linux 命令一起使用,进行复杂的文本处理和数据分析。

awk 常用命令参数

以下是一些与AWK常用的参数及其说明:

  • -F:指定输入字段的分隔符。例如,awk -F: '{print $1}' file 将使用冒号(:)作为字段分隔符。

  • -v:为awk脚本定义变量。例如,awk -v var=value '{print $1, var}' file 将在脚本中定义一个变量var,其值为value。

  • -f:从指定的脚本文件中读取awk命令。例如,awk -f script.awk file 将从script.awk文件中读取awk命令。

下篇文章:嵌入式开发 Linux 常用命令系列 8 – 二进制转为16进制常用命令

你可能感兴趣的:(#,Linux,常用命令,awk,awk,与,grep,awk,与,sed,awk,常用命令)