linux-awk分析指令

2024-06-14 1938阅读

目录

linux-awk分析指令
(图片来源网络,侵删)

基本用法:

条件语句:

内置变量:

自定义分隔符:

数学运算:

使用多个文件:

生成“完整使用报告”的示例:

8. 模式匹配

9. BEGIN和END模式

10. 数组和关联数组

11. 脚本方式使用

12. 逐行处理

13. 控制语句


awk 是一个强大的文本处理工具,用于在文本文件中执行模式扫描和文本/数据提取。下面我将为您展示一些 awk 的基本用法和示例,以及如何使用它来生成一个“完整使用报告”。但请注意,由于“完整使用报告”是一个相对模糊的概念,我将为您提供一系列常见的 awk 用法示例。

  1. 基本用法:

    • 打印文件中的所有内容:
      awk '{print}' filename
      • 打印文件的第一列:
      awk '{print $1}' filename
      • 打印文件的第一行:
      awk 'NR==1 {print}' filename
      • 打印文件的最后一行:
      awk 'END {print}' filename
    • 条件语句:

      • 打印文件中大于10的数字所在的行:
      awk '$1>10' filename
      • 如果第一列大于10,则打印第一列和第二列:
      awk '$1>10 {print $1, $2}' filename
    • 内置变量:

      • 打印文件的行数:
      awk 'END {print NR}' filename
      • 打印每行的字段数量:
      awk '{print NF}' filename
    • 自定义分隔符:

      • 使用冒号 : 作为字段分隔符,并打印第一列:
      awk -F: '{print $1}' filename
    • 数学运算:

      • 计算第一列和第二列的和,并打印结果:
      awk '{sum=$1+$2; print sum}' filename
    • 使用多个文件:

      • 假设我们有两个文件 file1.txt 和 file2.txt,我们想要打印两个文件中都有的行(基于整行内容):
      awk 'FNR==NR{a[$0];next} $0 in a' file1.txt file2.txt

      生成“完整使用报告”的示例:

假设我们有一个名为 sales.txt 的文件,内容如下:

ProductID,ProductName,QuantitySold,Price
1,Apple,10,2.5
2,Banana,20,1.2
3,Cherry,5,3.8

我们可以使用 awk 来生成一个“销售报告”,例如:

awk -F, 'NR>1 {print "Product:", $2, "sold", $3, "units at", $4, "per unit, total:", $3*$4}' sales.txt

输出:

Product: Apple sold 10 units at 2.5 per unit, total: 25
Product: Banana sold 20 units at 1.2 per unit, total: 24
Product: Cherry sold 5 units at 3.8 per unit, total: 19


8. 模式匹配

  • 正则表达式:awk 支持强大的正则表达式和模式匹配功能。

    awk '/pattern/{print}' data.txt # 打印匹配pattern的行

    9. BEGIN和END模式

    • BEGIN:在处理任何输入文件之前执行。

    • END:在所有输入文件都被处理完后执行。

      awk -F: 'BEGIN {print "Username\tShell"} {print $1"\t"$7} END {print "blue\t/bin/nosh"}' /etc/passwd

      10. 数组和关联数组

      • 定义数组:使用 数组名[下标] = 元素值 的格式定义数组。
      • 遍历数组:使用 for(变量 in 数组名) 遍历数组。

        11. 脚本方式使用

        • 将所有的 awk 命令插入一个文件,并使 awk 程序可执行,然后通过键入脚本名称来调用。

        • 使用 -f 选项加载 awk 脚本文件。

          awk -f awk-script-file input-file(s)

          12. 逐行处理

          • awk 最适合逐行处理文本文件,按行分割的文本数据是 awk 的主要应用场景。

            13. 控制语句

            • awk 支持分支结构(单分支、双分支、多分支)、循环结构(while、do-while、for)以及其他控制语句(如中断、退出等)。

              这只是一个简单的示例来展示如何使用 awk 来处理文本文件和生成报告。您可以根据自己的需求进一步定制 awk 脚本。

VPS购买请点击我

免责声明:我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自自研大数据AI进行生成,内容摘自(百度百科,百度知道,头条百科,中国民法典,刑法,牛津词典,新华词典,汉语词典,国家院校,科普平台)等数据,内容仅供学习参考,不准确地方联系删除处理! 图片声明:本站部分配图来自人工智能系统AI生成,觅知网授权图片,PxHere摄影无版权图库和百度,360,搜狗等多加搜索引擎自动关键词搜索配图,如有侵权的图片,请第一时间联系我们,邮箱:ciyunidc@ciyunshuju.com。本站只作为美观性配图使用,无任何非法侵犯第三方意图,一切解释权归图片著作权方,本站不承担任何责任。如有恶意碰瓷者,必当奉陪到底严惩不贷!

目录[+]