博客
关于我
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/

    你可能感兴趣的文章
    python 安装opencv及问题解决
    查看>>
    Python 安装程序:“写入文件 C:\Python27\pythonw.exe 时出错“
    查看>>
    Python 安装避坑指南:从入门到进阶
    查看>>
    Python 安装配置详解
    查看>>
    Python 常见的错误类型和继承关系
    查看>>
    python 常量_零基础学Python系列之一:Python的变量与常量
    查看>>
    Python 并发编程
    查看>>
    python 微信扫码登录_python实现微信第三方网站扫码登录(Django)
    查看>>
    Python 快速下载依赖
    查看>>
    Python 接口并发测试详解
    查看>>
    Python 接口自动化 —— requests框架
    查看>>
    Python 无法安装包
    查看>>
    python 日历小部件 - 返回用户选择的日期
    查看>>
    Python 日志管理封装
    查看>>
    Python 是否优化尾递归?
    查看>>
    Python 更新set
    查看>>
    Python 最强 IDE 详细使用指南!
    查看>>
    Python 机器学习入门之 pandas 的使用
    查看>>
    Python处理Excel数据
    查看>>
    Python基础:集合与文件操作
    查看>>