AWK命令基础与实战应用

4星 · 超过85%的资源 需积分: 9 31 下载量 132 浏览量 更新于2024-09-30 收藏 4KB TXT 举报
AWK(Advanced Unix Text Processing Language)是一种强大的文本处理工具,它在Linux和Unix系统中广泛应用,用于数据过滤、转换和提取。以下是对给定描述中提到的AWK用法的详细解释: 1. **基本语法**: - `awk '/pattern/ {action}' file`: AWK的基本模式是匹配指定模式(pattern)并在满足条件时执行操作(action)。如`awk '/101/ file`会显示文件`file`中包含数字101的行。 2. **范围匹配**: - `awk '/101/,/105/ file`: 这个命令会查找文件中从101到105之间的所有行。 3. **字段选择与比较**: - `awk '$1 == 5' file`: 检查文件中第一列($1)是否等于5。 - `awk '$1 == "CT"' file`: 对字符串进行精确匹配,注意双引号用于确保字符串被视为独立的。 4. **算术运算**: - `awk '$1 * $2 > 100' file`: 当两个字段的乘积大于100时,执行动作。 - `awk '$2 > 5 && $2 <= 15' file`: 这个条件判断在第二列的值在5和15之间。 5. **打印特定信息**: - `awk '{print NR, NF, $1, $NF}' file`: 打印当前行号(NR)、总字段数(NF)以及每行的第一列和最后一列。 - `awk '/101/{print $1, $2+10}' file`: 当找到101时,增加第二列值10并打印。 - `awk '/101/{print $1$2}' file`: 合并第一列和第二列,但注意当处理非字符串时,可能需要转义特殊字符。 6. **字段分隔符和自定义输入**: - `df | awk '$4 > 1000000'`: 通过管道传递输出,并过滤出磁盘空间大于1MB的信息。 - `-F`选项用于设置字段分隔符,如`awk -F|`或`awk -F '[:\t|]'`。 7. **预定义变量和自定义函数**: - `awk -f awkfile file`: 使用外部awk脚本文件awkfile处理数据。 - `catawk file/101/{print 'Hello!'}`: 在满足条件的情况下插入自定义字符串。 8. **条件语句和选择结构**: - `awk '{print ($1>4 ? "high" $1 : "low" $1)} file`: 根据条件选择打印高或低版本的值。 - `awk`中的条件表达式可以嵌套,如`$1*$2>100`,表示检查乘积是否大于100。 9. **格式化输出**: - `awk BEGIN {OFS = "%"} {print $1, $2}`: 在开始阶段设置输出字段分隔符(OFS),如百分比符号。 10. **循环和变量更新**: - `awk BEGIN {max=100; print max=max}`: 初始化最大值,在每次处理行之前更新。 - `awk`中可以使用循环结构来遍历数据并动态更新变量。 11. **字符串替换和操作**: - `awk '$1 == "Chi" {$3="China"; print}' file`: 如果第一列是"Chi",则将第三列替换为"China"。 AWK是一个功能强大的文本处理工具,通过灵活的模式匹配和操作,能够高效地处理各种数据过滤、转换任务。理解这些基本用法和语法可以帮助你更好地利用AWK进行数据处理和分析。