大一升大二暑期学校 linux系统基础 day4 20240723

一. awk

awk 是一个强大的文本处理工具,用于模式扫描和处理语言。它非常适合用来处理结构化数据,如表格和列数据。以下是一些基本的 awk 用法和示例:

基本语法

awk 的基本语法如下:

awk 'pattern { actions }' input-file
  • pattern:一个条件表达式,可以是正则表达式或固定字符串。
  • actions:当模式匹配时执行的一系列命令。
  • input-file:要处理的输入文件,如果不指定,则默认为标准输入(stdin)。

示例

  1. 打印每一行

    awk '{ print $0 }' filename.txt
    

    这个命令会打印 filename.txt 文件的每一行。

  2. 打印特定列

    awk '{ print $1 }' filename.txt
    

    这个命令会打印 filename.txt 文件的每一行的第一个字段(列)。

  3. 基于条件打印行

    awk '/pattern/ { print $0 }' filename.txt
    

    这个命令会打印包含 "pattern" 字符串的所有行。

  4. 计算行数

    awk 'END { print NR }' filename.txt
    

    NR 是一个内置变量,代表当前处理到的行号。END 模式在输入文件处理完毕后执行一次。

  5. 字段计数

    awk '{ count[$1]++ } END { for (key in count) print count[key] }' filename.txt
    

    这个命令会统计 filename.txt 文件中第一列中每个不同值的出现次数。

  6. 行选择

    awk 'NR > 10 && NR < 20 { print $0 }' filename.txt
    

    这个命令会打印第 11 到 19 行的内容。

  7. 使用内置变量

    awk '{ if (length($0) > 80) print "Line too long: " $0 }' filename.txt
    

    这个命令会检查每行的长度,如果超过 80 个字符,就打印出该行。

  8. 字段操作

    awk '{ print $1, toupper($2) }' filename.txt
    

    这个命令会打印每行的第一个字段和第二个字段的转换为大写的内容。

  9. 多条件匹配

    awk '$1 == "条件1" && $2 ~ /条件2/ { actions }' filename.txt
    

    这个命令会同时检查第一列是否等于 "条件1" 和第二列是否匹配正则表达式 "条件2"。

  10. 格式化输出

    awk '{ printf "%-10s %-10s\n", $1, $2 }' filename.txt
    

    这个命令会格式化输出,使每个字段宽度为 10 个字符,左对齐。

awk 的功能非常丰富,可以进行复杂的文本处理和数据操作。以上示例只是 awk 功能的一部分。通过结合使用不同的模式、动作和内置变量,你可以完成各种文本处理任务。

posted @   陆舟LandBoat  阅读(8)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律
点击右上角即可分享
微信分享提示