AWK 命令20条

简介: 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 提供了丰富的功能来处理文本文件中的数据,您可以根据您的需要选择适当的命令和操作。如果您有特定的问题或需求,请提供更多详细信息,我将尽力提供帮助。

相关文章
|
域名解析 移动开发 负载均衡
阿里云DNS常见问题之DNS负载均衡调加权模式失败如何解决
阿里云DNS(Domain Name System)服务是一个高可用和可扩展的云端DNS服务,用于将域名转换为IP地址,从而让用户能够通过域名访问云端资源。以下是一些关于阿里云DNS服务的常见问题合集:
|
存储 移动开发 算法
Python怎么将图片转换成base64编码
Python怎么将图片转换成base64编码
1072 10
|
4月前
|
人工智能 自然语言处理 安全
2026 GEO 合规新纪元:构建 AI 生成内容全链路风控与版权治理体系
2026年,生成式AI成搜索核心入口,GEO(生成式引擎优化)跃升为品牌数字资产运营关键技术。面对密集出台的AI监管新规与黑帽攻击、版权侵权等风险,“合规优先于流量”的GEO技术体系,涵盖版权溯源、数据脱敏、广告法校验、语义密度优化四大维度,筑牢AI时代品牌信用根基。(239字)
565 0
|
XML 自然语言处理 文字识别
SmolDocling技术解析:2.56亿参数胜过70亿参数的轻量级文档处理模型
SmolDocling是由HuggingFace与IBM联合研发的超紧凑视觉模型,专为端到端文档转换设计。基于SmolVLM-256M开发,参数量仅2.56亿,却媲美大型模型性能。其核心创新在于DocTags格式,一种类XML标记语言,能全面表示文档内容与结构。SmolDocling通过端到端架构实现图像理解与文本生成整合,在文档分类、OCR、布局分析等任务中表现出色。评估显示,其在多项指标上优于大参数量模型,适用于资源受限场景,推动文档处理技术发展。
403 8
SmolDocling技术解析:2.56亿参数胜过70亿参数的轻量级文档处理模型
|
8月前
|
消息中间件 数据库 UED
1.1 同步调用与异步调用
本文介绍了微服务间的同步与异步调用。同步调用需等待结果返回,顺序执行,适合实时性高、操作简单的场景;异步调用发出请求后可继续执行其他任务,提升效率与资源利用率,适用于耗时操作。通过支付、点餐、挂号等生活实例对比,阐述了二者特点、适用场景及优缺点。
|
Unix 索引
生信教程 | 基于PSMC估计有效群体大小
生信教程 | 基于PSMC估计有效群体大小
1029 2
|
安全 小程序 数据建模
SSL证书概述、类型、价格、作用及应用等10大常见问题解答
在互联网+时代,随着数字化进程加速,网络威胁日益严峻。SSL证书作为遵循SSL协议的数字证书,能实现HTTPS加密,验证网站服务器身份,确保数据传输安全性和完整性,有效防范中间人攻击和钓鱼网站。本文将介绍关于SSL证书的10大常见问题,帮助您更好地了解和使用SSL证书,确保网站安全。
|
Linux 数据安全/隐私保护 虚拟化
如何在 VM 虚拟机中安装 Kail Linux 2023.4 操作系统保姆级教程(附链接)
如何在 VM 虚拟机中安装 Kail Linux 2023.4 操作系统保姆级教程(附链接)
|
Python
【已解决】如何用正则提取小括号的内容
【已解决】如何用正则提取小括号的内容
780 0