首页 > 其他分享 >【Liunx】文本处理akw命令

【Liunx】文本处理akw命令

时间:2024-11-18 11:15:39浏览次数:3  
标签:apple cherry akw 文本处理 awk Liunx print txt data

awk 是一个强大的文本处理工具,用于在 Unix 和类 Unix 操作系统中进行模式扫描和处理。awk 能够从输入文件中读取数据,并对这些数据进行复杂的文本处理。

以下是 awk 的一些主要特性:

  1. 模式匹配awk 可以搜索特定的模式,并在找到匹配行时执行相应的操作。

  2. 字段处理awk 能够识别输入行中的字段(默认由空格分隔),并允许用户通过 $1$2 等变量访问这些字段。

  3. 内置变量awk 提供了一系列内置变量,如 NF(当前行的字段数)、NR(已处理的记录数)等。

  4. 编程能力awk 支持变量赋值、算术运算、逻辑运算、控制结构(如 if-else、while、for 循环)等,使其成为一种完整的编程语言。

  5. 正则表达式awk 支持使用正则表达式进行模式匹配。

  6. 多行模式awk 可以处理多行模式,允许用户对多行文本进行操作。

  7. 用户定义函数awk 允许用户定义自己的函数,以复用代码和提高处理效率。

  8. 模式-动作对awk 的核心是模式-动作对,其中模式指定要匹配的文本,动作是在找到匹配时执行的命令。

  9. 跨平台awk 同样被移植到了多种操作系统,包括 Windows。

awk 命令的基本语法如下:

awk 'pattern { actions }' file

或者

awk -Fdelimiter 'pattern { actions }' file

其中 -Fdelimiter 用于指定字段分隔符,pattern 是要搜索的模式,actions 是在找到匹配时执行的一系列命令,file 是要处理的文件。

一些常见的 awk 用法示例:

  • 打印第二列

    awk '{print $2}' file
    
  • 计算行数

    awk 'END {print NR}' file
    
  • 按行处理

    awk '{sum += $1} END {print sum}' file
    
  • 条件打印

    awk '$3 > 100 {print $1, $3}' file
    
  • 使用正则表达式

    awk '/^Error/ {print $0}' file
    
  • 自定义分隔符

    awk -F: '{print $1}' /etc/passwd
    

awk 提供了一系列内置变量,这些变量可以用来控制 awk 的行为或存储关于当前处理的数据的信息。以下是一些常用的 awk 内置变量:

  1. $0:整个当前记录,即当前行。

  2. $1, $2, …, $NF:当前记录的字段,其中 $1 是第一个字段,$2 是第二个字段,以此类推,$NF 是最后一个字段。

  3. NF:当前记录中的字段总数。

  4. NR:已经处理的记录总数(行数)。

  5. FNR:当前文件的记录数(行数)。当处理多个文件时,每个文件的 FNR 都是独立的。

  6. FS:字段分隔符,默认为空格或制表符。

  7. OFS:输出字段分隔符,默认与 FS 相同。

  8. RS:记录分隔符,默认为换行符。

  9. ORS:输出记录分隔符,默认与 RS 相同。

  10. FILENAME:当前处理的文件名。

  11. ARGC:命令行参数的数量。

  12. ARGV:命令行参数的数组。

  13. ENVIRON:环境变量的数组。

练习题

练习 1:打印文件中每行的第二个字段

文件内容 (data.txt):

apple 5 banana
orange 10 mango
grape 7 cherry

命令

awk '{print $2}' data.txt

预期结果

5
10
7
练习 2:计算文件中包含某个单词的行数

文件内容 (data.txt):

apple
banana
apple
cherry
apple

命令

awk '/apple/ {count++} END {print count}' data.txt

预期结果

3
练习 3:将文件中的字段以逗号分隔符输出

文件内容 (data.txt):

apple 5 banana
orange 10 mango
grape 7 cherry

命令

awk '{printf "%s,%s,%s\n", $1, $2, $3}' data.txt

预期结果

apple,5,banana
orange,10,mango
grape,7,cherry
练习 4:计算文件中每行第一个字段的总和

文件内容 (data.txt):

1 2 3
4 5 6
7 8 9

命令

awk '{sum += $1} END {print sum}' data.txt

预期结果

12
练习 5:打印文件中每行最后一个字段

文件内容 (data.txt):

apple 5 banana cherry
orange 10 mango cherry
grape 7 cherry berry

命令

awk '{print $(NF)}' data.txt

预期结果

cherry
cherry
berry
练习 6:打印文件中第二个字段大于5的行

文件内容 (data.txt):

apple 3 banana
orange 10 mango
grape 7 cherry
pear 2 apple

命令

awk '$2 > 5' data.txt

预期结果

orange 10 mango
grape 7 cherry
练习 7:将文件中的字段分隔符设置为冒号,并打印第一个字段

文件内容 (data.txt):

apple:5:banana
orange:10:mango
grape:7:cherry

命令

awk -F: '{print $1}' data.txt

预期结果

apple
orange
grape

#练习 8:计算文件中每个单词出现的次数

文件内容 (data.txt):

apple banana apple cherry banana grape

命令

awk '{for(i=1; i<=NF; i++) count[$i]++} END {for(word in count) print word, count[word]}' data.txt

预期结果

apple 2
banana 2
cherry 1
grape 1

标签:apple,cherry,akw,文本处理,awk,Liunx,print,txt,data
From: https://blog.csdn.net/weixin_54799594/article/details/143850075

相关文章

  • awk是一种在 Linux 和 Unix 系统中非常强大且常用的文本处理工具
    一、awk介绍awk是一种在Linux和Unix系统中非常强大且常用的文本处理工具,它的名字来源于其三位创始人AlfredAho、PeterWeinberger和BrianKernighan的姓氏首字母。awk可以对文本文件(或来自标准输入的文本流)按行进行扫描,并根据用户指定的规则来处理文本,比如提取特......
  • [ Linux 命令基础 ] Linux 命令大全-命令前置知识-系统管理-文件和目录管理-文本处理
    ......
  • 第二周学习笔记Linux:Linux用户权限管理 |文本处理|shell基础
    用户权限命令以及ACL权限相关命令1.Linux安全模型资源分派:Authenticaton:登陆认证,验证用户身份Authorization:授权,不同的用户设置不同权限Accouting:审计,检查用户的时候行为即Linux的AAA认证,是针对网络设备的网络访问控制策略和安全模型1用户Linux是多系统用户,可以......
  • HTML文本处理
    在HTML中,文本是HTML中最基本的内容之一,为此HTML提供了诸多元素让本文更加清晰有条理,并且拥有更多的功能。1.HTML文档的头部<!DOCTYPEhtml><htmllang="en"><head><metacharset="UTF-8"><metaname="viewport"content="width=device-width,......
  • 【Git】Liunx环境下Git的使用:“克隆,提交,推送“
      目录一、常用参数二、我们为什么要使用Git?三、创建远程仓库第一步:创建对应代码托管平台账号。第二步:在托管平台创建仓库第三步:完善仓库内容(选择性使用)开源和私有四、克隆远程仓库到本地安装git:Git全局配置:克隆仓库到本地:五、远程仓库的维护(四步走)gitaddgi......
  • liunx系统面视
       ......
  • awk&&文本处理工具和正则表达式
    awk2.2.4优先级简单实践实践1-分结构实践BEGIN设定数据处理的前置准备[root@rocky9~]#awk'BEGIN{OFS=":"}{printNR,$0}'awk.txt1:nihaoawk1awk2awk32:nihaoawk4awk5awk63:nihaoawk7awk8awk9{}定制输出的内容样式[root@rocky9~]#awk'{print"第一列:&qu......
  • 释放AI潜能:一站式文本处理、分析与转换免费神器
    Textin.com产品使用手册/心得引言在当今数字化时代,文本处理、分析和转换已成为各行各业不可或缺的工具。然而,找到一个功能全面且易于使用的平台却并非易事。今天,我将向大家介绍一个免费的AI集文本处理、分析、转换于一体的在线平台——Textin.com。这个平台不仅功能强大,......
  • Liunx xfs文件系统的f_type
    xfs_info是一个用于显示XFS文件系统信息的工具。在xfs_info命令中,ftype参数用于指定文件类型的处理方式。XFS文件系统支持两种文件类型处理方式:ftype=0:传统方式(Legacymode)ftype=1:扩展方式(Extendedmode)ftype=0(传统方式)在这种模式下,XFS文件系统使用传统的Unix文件......
  • 文本处理工具
    文本编辑工具之神-VIMvi/vim的使用基本上vi/vim共分为三种模式,命令模式(CommandMode)、输入模式(InsertMode)和命令行模式(Command-LineMode)。命令模式用户刚刚启动vi/vim,便进入了命令模式。此状态下敲击键盘动作会被Vim识别为命令,而非输入字符,比如我们此时按下i,并不会......