AWK 命令20条

本文涉及的产品
应用实时监控服务-应用监控,每月50GB免费额度
云原生网关 MSE Higress,422元/月
容器服务 Serverless 版 ACK Serverless,317元额度 多规格
简介: AWK 命令示例:显示文件内容、按列打印、计数、使用分隔符、模式匹配、条件语句、数学计算、数组操作、字符串处理、循环、输出格式控制、删除重复行、统计行词字符、分组统计、格式化输出、字段联合、自定义分隔符、字符串截取和调用外部命令。AWK 是强大的文本分析工具,适用于各种数据处理任务。

以下是常用的 AWK 命令示例:

  1. 显示文件内容:

    • awk '{print}' file.txt:打印文件的所有行。
  2. 按列打印内容:

    • awk '{print $1}' file.txt:打印文件的第一列。
    • awk '{print $1, $3}' file.txt:打印文件的第一列和第三列。
  3. 计算行数、列数和字符数:

    • awk 'END {print NR}' file.txt:计算文件的行数。
    • awk '{print NF}' file.txt:计算每行的列数。
    • awk '{c+=length()} END{print c}' file.txt:计算文件的字符数。
  4. 使用分隔符:

    • awk -F':' '{print $1, $NF}' file.txt:使用冒号作为分隔符打印第一列和最后一列。
    • awk 'BEGIN{FS=":"} {print $1, $NF}' file.txt:在命令内部设置分隔符。
  5. 匹配模式:

    • awk '/pattern/ {print}' file.txt:打印包含特定模式的行。
    • awk '$1 == "value" {print}' file.txt:根据字段值进行匹配并打印相应的行。
  6. 条件语句:

    • awk '{if ($1 > 10) print}' file.txt:如果第一列大于10,则打印该行。
    • awk '{print ($2 > 50) ? "High" : "Low"}' file.txt:根据第二列的值打印 "High" 或 "Low"。
  7. 数学计算:

    • awk '{sum += $1} END {print sum}' file.txt:计算第一列的总和。
    • awk '{avg += $1; count++} END {print avg/count}' file.txt:计算第一列的平均值。
  8. 数组操作:

    • awk '{arr[$1]++} END {for (i in arr) print i, arr[i]}' file.txt:统计第一列中每个值出现的次数。
  9. 字符串处理:

    • awk '{sub("old", "new", $1)} 1' file.txt:将第一列中的第一个 "old" 替换为 "new"。
    • awk '{gsub("old", "new", $1)} 1' file.txt:将第一列中所有的 "old" 替换为 "new"。
  10. 循环操作:

    • awk '{for(i=1;i<=NF;i++) print $i}' file.txt:循环打印每行的每个字段。
    • awk '{while(getline < "file2.txt") print $1, $NF}' file.txt:在 awk 中嵌套使用 getline 语句。
  1. 输出指定字段长度的内容:

    • awk 'length($1) > 5 {print}' file.txt:打印第一列长度超过5的行。
  2. 对字段进行格式化:

    • awk '{printf "%-10s %-5s\n", $1, $2}' file.txt:指定字段宽度并左对齐打印第一列和第二列。
  3. 删除重复行:

    • awk '!seen[$0]++' file.txt:删除文件中的重复行。
  4. 统计文件中的行数、单词数和字符数:

    • awk 'BEGIN{lines=0; words=0; characters=0;} {lines++; words+=NF; characters+=length()+1;} END{print lines, words, characters;}' file.txt:统计行数、单词数和字符数。
  5. 分组统计:

    • awk '{count[$1]++; sum[$1]+=$2} END{for(i in count) print i, count[i], sum[i]}' file.txt:根据第一列的值进行分组,并统计每个组的频次和总和。
  6. 格式化输出:

    • awk '{printf "%-10s %5d\n", $1, $2}' file.txt:指定字段宽度并右对齐打印第一列和第二列。
  7. 字段联合操作:

    • awk '{$3 = $1 $2; print}' file.txt:将第一列和第二列拼接后赋值给第三列,然后打印所有列。
  8. 自定义输出分隔符:

    • awk 'BEGIN{OFS=","} {print $1, $2}' file.txt:指定逗号作为输出分隔符打印第一列和第二列。
  9. 字符串截取:

    • awk '{print substr($1, 1, 3)}' file.txt:打印第一列的前三个字符。
  10. 运行外部命令并获取结果:

    • awk '{cmd="echo "$1; cmd | getline result; print result}' file.txt:运行外部命令(此处为 echo)并获取其输出结果。

这些是另外一批常用的 AWK 命令示例,可以根据具体需求进行调整和组合使用。AWK 提供了丰富的功能来处理文本文件中的数据,您可以根据您的需要选择适当的命令和操作。如果您有特定的问题或需求,请提供更多详细信息,我将尽力提供帮助。

相关文章
|
Unix Shell Linux
两个实用的shell命令:sed和awk用法
两个实用的shell命令:sed和awk用法
125 0
|
Linux Perl Unix
Linux命令之grep/sed/awk等行转列
行转列 样例文件如下 cat file.txt a b c d e f g h i cat file.txt |xargs -n1 xargs -n 1 < file.
3695 0
|
网络协议 关系型数据库 MySQL
|
Perl Shell SDN
|
关系型数据库 MySQL Unix
|
Shell Perl Ubuntu
|
应用服务中间件 Perl JavaScript