博客
关于我
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 实现字符串转整型
    查看>>
    Python 实现定时任务的八种方案!
    查看>>
    Python 实现自动化测试 dubbo 协议接口
    查看>>
    python 对json数据读取及保存与读取,对dump,dumps,load,loads的理解
    查看>>
    Python 对mysql数据库的操作
    查看>>
    Python 对象数据库列表
    查看>>
    Python 导入requests报错No module named requests
    查看>>
    python 将函数加到列表中进行调用
    查看>>
    python 将图片与字符串相互转换
    查看>>
    Python 嵌套字典全面指南
    查看>>
    Python 常见的错误类型和继承关系
    查看>>
    python 常量_零基础学Python系列之一:Python的变量与常量
    查看>>
    Python 并发编程
    查看>>
    python 序列化操作
    查看>>
    Python 开发者,这 7 个 VS Code 插件极力推荐
    查看>>
    python手把手视频_硬货 | 手把手带你构建视频分类模型(附Python演练))
    查看>>
    python 录音左右声道_Python分离立体声wav压缩文件的左右声道
    查看>>
    Python 循环异或对文件进行加解密
    查看>>
    Python开发环境搭建(附VMware安装包及虚拟机环境)
    查看>>
    python 微信扫码登录_python实现微信第三方网站扫码登录(Django)
    查看>>