博客
关于我
Linux awk命令的基本用法
阅读量:604 次
发布时间:2019-03-12

本文共 1164 字,大约阅读时间需要 3 分钟。

AWK命令详解:文件处理与数据提取技巧

文件内容

文件 abc.txt 包含以下内容:

1 this is a file2 apple orange banana pear grape3 a test10 There are orange apple mango

每行按空格或 TAB 分割,共有四列数据。


AWK命令基础

1. 行匹配语句

awk '{[pattern] action}'

awk ''

  • 只能用于空格或 TAB 分割的文件
  • 使用单引号表示语句结束
  • 逐行处理文件

2..column splitting与输出

为了正确处理,首先需要明确字段分割方式。通常,空格或 TAB 五种分隔符默认即可,但有时需要指定。

awk '{print $1,$2}' abc.txt

常用 AWK 格式

1. printf 格式化输出

awk '{print "%-8s %-10s\n",$1,$4}' abc.txt
  • %-8s:输出长度最小为8个字符,未充满前补空格
  • %-10s:同上,长度最小为10个字符
  • \n:换行

2. 可变格式化输出

如需根据具体情况改变输出格式,可以在 print 语句中添加格式标记或脚本变量。


AWK 实用命令示例

1. 修改分隔符

默认分隔符是空格,如果需要指定分隔符,可以直接在命令中指定。

awk -F "," '{print $1,$2}' filenames.txt

2. 替换列内容

-F:内置变量 FS,指定分隔符).


常见 AWK 操作示例

1. 过滤第一列大于 2 的行

awk '$1 > 2' abc.txt

2. 过滤第一列等于 2 的行并输出第二列和第三列

awk '$1 == 2 {print $2,$3}' abc.txt

3. 过滤第一列大于 3 并且第五列等于 'apple' 的行

awk '$1 > 3 && $5 == "apple" {print $2,$3}' abc.txt

特殊字符注意事项

  • 在条件表达式中,逻辑运算符 &&|| 要注意优先级
  • 数字与字符串比较时,需要用于布尔类型转换3.vip
    • 将逻辑运算符放在条件两边

    AWK 函数与变量

    1. 内置变量

    • $PUC:前一列
    • $PR:前两列
    • FS:分隔符
    • OFS:输出字段分隔符

    2. 高级匹配类型

    • <>==!===~!~
    • 可用于包含空格的字段匹配

    最佳实践

    • 最好先通过 head -n 2 查看文件格式
    • 先通过 cat -n 查看换行符和空格
    • 避免在处理大文件时使用 awk,它的性能对比 sed 较弱

    总结语

    AWK 命令是处理文本文件的强大工具,熟练掌握 -F(分隔符)、print 格式化和逻辑条件语句即可解决大多数日常任务。


    欢迎在评论区分享您的学习心得或使用场景!

    转载地址:http://gucxz.baihongyu.com/

    你可能感兴趣的文章
    mysql 的存储引擎介绍
    查看>>
    MySQL 的存储引擎有哪些?为什么常用InnoDB?
    查看>>
    Mysql 知识回顾总结-索引
    查看>>
    Mysql 笔记
    查看>>
    MySQL 精选 60 道面试题(含答案)
    查看>>
    mysql 索引
    查看>>
    MySQL 索引失效的 15 种场景!
    查看>>
    MySQL 索引深入解析及优化策略
    查看>>
    MySQL 索引的面试题总结
    查看>>
    mysql 索引类型以及创建
    查看>>
    MySQL 索引连环问题,你能答对几个?
    查看>>
    Mysql 索引问题集锦
    查看>>
    Mysql 纵表转换为横表
    查看>>
    mysql 编译安装 window篇
    查看>>
    mysql 网络目录_联机目录数据库
    查看>>
    MySQL 聚簇索引&&二级索引&&辅助索引
    查看>>
    Mysql 脏页 脏读 脏数据
    查看>>
    mysql 自增id和UUID做主键性能分析,及最优方案
    查看>>
    Mysql 自定义函数
    查看>>
    mysql 行转列 列转行
    查看>>