博客
关于我
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工作笔记012
    查看>>
    python_程序的构成---python工作笔记015
    查看>>
    python_超文本传输协议
    查看>>
    Python_集合
    查看>>
    Python|AsyncIO|TypeError:应为协程
    查看>>
    python——random模块的应用
    查看>>
    Python——基础知识细节
    查看>>
    Python——正则表达式
    查看>>
    Python—面向对象2
    查看>>
    Python“和“带整数的运算符
    查看>>
    Python“文件存在“制作目录时出错
    查看>>
    Python“文件存在“制作目录时出错
    查看>>
    Python、IMAP 和 GMail.将消息标记为已查看
    查看>>
    python一个一个获取迭代器的元素
    查看>>
    python一维数组 提取_python – 如何从numpy中的1维数组中提取零维切片
    查看>>
    python三大库之--numpy(一)
    查看>>
    python三大库之--numpy(二)
    查看>>
    python上的字无效字符_标识中的无效字符
    查看>>
    python下用decode和encode 中文转码
    查看>>