在 Linux 中使用 awk 的 8 个级别


在 Linux 中使用 awk 的 8 个级别

图片来自Wallhaven的420BongHits

Linux 中有一个命令功能强大到不能称为命令——awk。它实际上是一种用于 Linux 中文本处理的脚本语言。

掌握它awk是一个长期的旅 程,因为它有很多选项、语法和复杂的用法。当然,您可以转到其官方用户手册页面并查看它们。但是它的手册是一个超长的页面,不是吗?很少有人能一口气读完。

这就是为什么这篇文章会让你的生活更轻松。没有必要记住它的所有选项和语法。您只需要知道它可以做什么以及一些常见用法。

这篇文章,根据我自己的经验,将向你介绍awk在 8 个难度级别中使用所需的常用知识和最低知识。

0. 了解 awk 命令的结构

基本上,一切都将从一个awk关键字开始,然后是一个awk用单引号括起来的程序。最后,它是该awk命令将处理的文件的名称。

在单引号内,有两种类型的程序:“模式”和“动作”。模式用于搜索文件中的某些文本。一个动作,顾名思义,就是用来做一些操作的。

所以,有以下三种用途awk:

1.只执行一个动作

awk '{action}' 文件名

2. 仅根据模式搜索文本

awk '模式' 文件名

3.结合模式和动作的使用

awk '模式 {action}' 文件名

如上所示,为了区分模式和动作,动作将用花括号括起来。

现在,我们已经有了基本的背景知识awk。让我们深入了解其用法的更多细节。

1.直接运行Action

这是一个名为的文件yang.txt,它将作为本文的示例文件。它的内容是:

在 Linux 中使用 awk 的 8 个级别

现在,让我们为它执行一个简单的awk操作:

在 Linux 中使用 awk 的 8 个级别

如上例所示,我们可以使用该-F选项来定义输入分隔符(在我们的例子中是:),默认情况下是空格。由于我们使用:分隔符,因此每行中有两个单词(或称为字段)。$NUMBER语法是指定我们将使用哪个字段。

关于$NUMBER语法,我们需要知道一些事情:

2. 添加开始和结束动作

BEGINandEND关键字在awk程序中有特殊用途。正如它们的名字所暗示的,我们可以在动作的开始和结束时添加一些额外的动作。

在 Linux 中使用 awk 的 8 个级别

上面的示例在操作之前和之后打印了一些有用的信息{print $0}。实际上,我们也可以在BEGINaction 中定义输入分隔符,而不是使用-F选项,这样可以让程序更简洁:

在 Linux 中使用 awk 的 8 个级别

3. 使用内置函数

里面有一些内置函数awk。我们可以直接在动作上使用它们。例如,要将所有字符转换为大写,我们可以使用toupper()如下函数:

在 Linux 中使用 awk 的 8 个级别

所有内置函数的完整列表在官方手册中。

4. 在操作中使用 If-Else 语句

正如我所说,awk它是一种脚本语言,因为该if-else语句是所有语言的必备条件,awk因此也支持它。

如果一行文本的第一个字段等于“名称”,则以下示例打印第二个字段。

在 Linux 中使用 awk 的 8 个级别

我们还可以添加一个else语句:

在 Linux 中使用 awk 的 8 个级别

5. 在模式中使用正则表达式

现在,让我们继续讨论模式。令人awk惊奇的是它支持正则表达式,因此我们可以根据需要通过各种方式搜索文本。

基本上,我们可以将我们需要的正则表达式放入//如下:

在 Linux 中使用 awk 的 8 个级别

默认情况下,该模式将尝试匹配每一行的整个文本。如果我们想匹配一个特定的字段,只需在模式的开头添加它,不要忘记一个特殊~的遵循awk.

在 Linux 中使用 awk 的 8 个级别

如上所示,该模式$1 ~ /e$/仅匹配每一行的第一个字段。

6. 结合模式和行动

现在,是时候结合模式和行动了。没有什么特别的,只是通过用花括号括起来的动作来区分模式和动作:

在 Linux 中使用 awk 的 8 个级别

注意模式和动作的顺序。对于上面的例子,如果我们先执行动作然后执行模式,结果将完全不同。

7. 编写可执行的 awk 脚本

掌握的目的awk不仅仅是写一些简单的一行命令。就是写Linux脚本。

awk现在,我们已经对count_words.awk.

在 Linux 中使用 awk 的 8 个级别

现在,让我们执行它来计算 上有多少单词yang.txt:

在 Linux 中使用 awk 的 8 个级别

结论

awk是 Linux 中一种强大的脚本语言。这篇文章只是展示了冰山一角。在你遇到它的第一天就掌握它是不可能的。一个更好的学习策略是先通过一些简单的例子来理解它的基本语法,然后你可以查看它的综合官方手册来了解更复杂的用法。

谢谢阅读。如果喜欢,请关注我,成为Medium会员,享受更多精彩文章。

更多关于 Linux 的文章:

在 Linux 中使用 awk 的 8 个级别


Linux 大师

展开阅读全文

页面更新:2024-04-22

标签:字段   示例   语法   函数   选项   文本   命令   级别   动作   模式   操作

1 2 3 4 5

上滑加载更多 ↓
推荐阅读:
友情链接:
更多:

本站资料均由网友自行发布提供,仅用于学习交流。如有版权问题,请与我联系,QQ:4156828  

© CopyRight 2008-2024 All Rights Reserved. Powered By bs178.com 闽ICP备11008920号-3
闽公网安备35020302034844号

Top