【嵌入式开发 Linux 常用命令系列 7 -- awk 常用方法】

这篇具有很好参考价值的文章主要介绍了【嵌入式开发 Linux 常用命令系列 7 -- awk 常用方法】。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。


上篇文章:嵌入式开发 Linux 常用命令系列 6 – 字符提取 cut 命令使用
下篇文章:嵌入式开发 Linux 常用命令系列 8 – 二进制转为16进制常用命令

AWK 功能介绍

AWK是一种强大的文本分析工具,最初是由 Aho, Weinberger 和 Kernighan 设计和实现的,AWK 的名称就来源于他们三人的姓氏首字母。在Linux环境下,AWK是处理文本数据的重要工具之一。
以下是AWK的主要功能:

  • 数据抽取:AWK可以抽取文件中的数据并输出到命令行。
  • 数据转换:AWK可以将输入数据转换为用户需要的格式。
  • 报告生成:AWK能够生成格式化的报告,它包含用户选择的特定数据。
  • 数据操作:AWK可以对数据进行各种操作,例如添加,删除,修改等。
  • 文本处理:AWK强大的字符串处理功能使得它在文本分析,数据抽取和报告生成中非常有用。

AWK的使用实例非常多,下面是一些常见的例子:

  • 打印文件的某一列:
    假设我们有一个文本文件(file.txt),内容如下:
apple red 4 
banana yellow 6 
grape purple 10 

如果我们想打印出所有水果的名称,我们可以使用以下命令:

awk '{print $1}' file.txt 

这个命令将打印出第一列的数据:

apple 
banana 
grape
  • 筛选出特定行:
    如果我们想找出所有数量超过5的水果,我们可以使用以下命令:
awk '$3 > 5 {print $0}' file.txt 

这个命令将打印出第三列数值超过5的行:

banana yellow 6 
grape purple 10
  • 计算和:
    如果我们想计算所有水果的总数量,我们可以使用以下命令:
awk '{sum+=$3} END {print sum}' file.txt 

这个命令将打印出所有水果数量的总和:

20

这只是AWK的冰山一角,AWK的功能非常强大,可以处理更复杂的文本处理任务。

awk 与 $ 关系

在 AWK 中,“$” 符号用于引用字段的值。AWK 默认使用空格作为字段分隔符,将每行分割为多个字段,并用 “$” 符号加上字段编号来引用每个字段的值。

例如,“$1” 表示第一个字段,“$2” 表示第二个字段。

这是一个例子:

echo "apple red 4" | awk '{print $1}'

这个命令会输出 “apple”,因为 “$1” 引用了输入行的第一个字段。

另外,“$0” 表示整行的内容。

如果我们想改变字段的分隔符,我们可以使用 “-F” 选项。例如,下面的命令使用冒号作为字段分隔符:

echo "apple:red:4" | awk -F':' '{print $1}'

这个命令会输出 “apple”。

awk 与其他命令组合使用

AWK 可以和许多其他命令一起使用以高效地处理文本数据。这里有几个例子:

  • 使用管道将其他命令的输出作为 AWK 的输入:
ls -l | awk '{print $9}'

这个命令列出了当前目录下所有文件和目录的名字。

  • 将 AWK 的输出作为其他命令的输入:
awk '{print $1}' file.txt | sort 

这个命令打印出 file.txt 的第一列,并将其输出排序。

  • AWK 和 grep 的组合使用:
ps aux | grep 'httpd' | awk '{print $2}' 

这个命令将返回所有 httpd 进程的进程 ID。

  • AWK 和 sed 的组合使用:
echo "apple:red:4" | awk -F':' '{print $2}' | sed 's/red/green/' 

这个命令首先使用 AWK 提取出 “red”,然后用 sed 将其替换为 “green”。

这些只是一些基本示例,实际上 AWK 可以与许多其他 Unix/Linux 命令一起使用,进行复杂的文本处理和数据分析。

awk 常用命令参数

以下是一些与AWK常用的参数及其说明:

  • -F:指定输入字段的分隔符。例如,awk -F: '{print $1}' file 将使用冒号(:)作为字段分隔符。

  • -v:为awk脚本定义变量。例如,awk -v var=value '{print $1, var}' file 将在脚本中定义一个变量var,其值为value。

  • -f:从指定的脚本文件中读取awk命令。例如,awk -f script.awk file 将从script.awk文件中读取awk命令。

下篇文章:嵌入式开发 Linux 常用命令系列 8 – 二进制转为16进制常用命令文章来源地址https://www.toymoban.com/news/detail-606126.html

到了这里,关于【嵌入式开发 Linux 常用命令系列 7 -- awk 常用方法】的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包赞助服务器费用

相关文章

  • lv3 嵌入式开发-3 linux shell命令(文件搜索、文件处理、压缩)

    lv3 嵌入式开发-3 linux shell命令(文件搜索、文件处理、压缩)

    目录 1 查看文件相关命令 1.1 常用命令 1.2 硬链接和软链接 2 文件搜索相关命令 2.1 查找文件命令 2.2 查找文件内容命令 2.3 其他相关命令 3 文件处理相关命令 3.1 cut  3.2 sed 过滤 3.3 awk 匹配 4 解压缩相关命令 4.1 解压缩文件的意义 4.2 解压缩相关命令 cat - concatenate files and pri

    2024年02月10日
    浏览(7)
  • 2023-04-14 Linux连接WiFi常用命令,用命令打开、搜索、连接wifi,在buildroot 嵌入式系统上测试,用 wifi_start.sh WIFI名称 WIFI密码 命令格式连接

    2023-04-14 Linux连接WiFi常用命令,用命令打开、搜索、连接wifi,在buildroot 嵌入式系统上测试,用 wifi_start.sh WIFI名称 WIFI密码 命令格式连接

    一、ifconfig 命令查看打开的网卡  二、ifconfig -a 命令查看所有的网卡,包括关闭的。  三、打开WIFI命令:ifconfig wlan0 up ;关闭WIFI命令: ifconfig wlan0 down 。  四、wpa_cli 命令基本操作  五、iwlist wlan0 scan 搜索附件WIFI设备  六、用 wifi_start.sh WIFI名称 WIFI密码 命令格式连接WIFI  

    2024年02月14日
    浏览(7)
  • 嵌入式:ARM常用开发编译软件介绍

    嵌入式:ARM常用开发编译软件介绍

    ADS(ARM Developer Suite),是在1993年由Metrowerks公司开发是ARM处理器下最主要的开发工具。 他的前身是SDT,SDT是ARM公司几年前的开发环境软件,目前SDT早已经不再升级。ADS包括了四个模块分别是:SIMULATOR;C 编译器;实时调试器;应用函数库。ADS对汇编、C/C++、java支持的均很好,

    2024年02月06日
    浏览(31)
  • 嵌入式Linux:如何进行嵌入式Linux开发?

    目录 1、裸机开发 2、SDK开发 3、驱动开发 3.1、字符设备驱动 3.2、块设备驱动 3.3、网络设备驱动 4、应用开发 嵌入式Linux开发主要有四种方式:裸机开发、SDK开发、驱动开发和应用开发。 裸机开发通常指在没有操作系统支持的环境中直接在硬件上运行程序的开发。这种开发方

    2024年01月25日
    浏览(8)
  • 关于嵌入式开发的一些信息汇总:嵌入式C开发人员、嵌入式系统Linux

    关于嵌入式开发的一些信息汇总:嵌入式C开发人员、嵌入式系统Linux

    这篇文章是关于嵌入式开发的一些基本信息,供想入行的人参考。有一些作者本人的想法,以及来自外网的大拿的文章翻译而来,原文链接在此Learning Linux for embedded systems,再次感谢,支持原创。 普通C开发人员和嵌入式C开发人员之间的 基本区别在于 ,因为嵌入式C程序被设

    2024年02月03日
    浏览(40)
  • RK3588平台开发系列讲解(嵌入式AI篇)嵌入式AI的学习步骤

    RK3588平台开发系列讲解(嵌入式AI篇)嵌入式AI的学习步骤

    沉淀、分享、成长,让自己和他人都能有所收获!😄 📢 本篇将给大家介绍什么是嵌入式AI。

    2024年02月04日
    浏览(9)
  • 嵌入式算法开发系列之图像处理算法

    在嵌入式系统中,图像处理算法是一项重要的技术,用于实现各种视觉应用,如机器视觉、监控系统和智能设备。本文将探讨图像处理算法的原理、应用以及如何使用 C 语言来实现这些算法。 图像处理算法涉及处理数字图像的各个方面,包括图像增强、滤波、特征提取、目标

    2024年04月16日
    浏览(8)
  • 嵌入式开发:单片机嵌入式Linux学习路径

    嵌入式开发:单片机嵌入式Linux学习路径

    SOC(System on a Chip)的本质区别在于架构和功能。低端SOC如基于Cortex-M架构的芯片,如STM32和NXP LPC1xxx系列,不具备MMU(Memory Management Unit),适用于轻量级实时操作系统如uCOS和FreeRTOS。高端SOC如基于Cortex-A架构的芯片,如三星、高通、飞卡、全志和瑞芯微等,具备MMU,支持虚拟内

    2024年02月15日
    浏览(12)
  • 嵌入式开发——文件系统部署rz、sz命令

    嵌入式开发——文件系统部署rz、sz命令

    下载网址:https://ohse.de/uwe/software/lrzsz.html (1)报错显示在编译sz、rz命令时还依赖libnsl.so库,当前编译时找不到libnsl库; (2)libnsl是Unix/Linux系统下的一个开源C语言库,全称为“network services library”,提供了对许多网络服务程序的网络接口调用。其主要功能包括获取主机名、网络

    2024年02月07日
    浏览(6)
  • 嵌入式Linux开发教程汇总

    野火:https://doc.embedfire.com/products/link/zh/latest/linux/index.html 正点原子:http://47.111.11.73/docs/boards/arm-linux/index.html 百问网:http://download.100ask.net/books/Linux/ELADCM1/index.html 百问网:https://space.bilibili.com/275908810/channel/seriesdetail?sid=1714177 野火:https://space.bilibili.com/356820657/channel/seriesdeta

    2024年02月10日
    浏览(33)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包