iis服务器助手广告广告
返回顶部
首页 > 资讯 > 精选 >如何使用AWK对文本进行过滤
  • 483
分享到

如何使用AWK对文本进行过滤

2023-06-27 18:06:48 483人浏览 独家记忆
摘要

本篇内容主要讲解“如何使用AWK对文本进行过滤”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“如何使用AWK对文本进行过滤”吧!什么是正则表达式? 正则表达式可以定义为代表若干个字符序列

本篇内容主要讲解“如何使用AWK对文本进行过滤”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“如何使用AWK对文本进行过滤”吧!

如何使用AWK对文本进行过滤

什么是正则表达式

正则表达式可以定义为代表若干个字符序列的字符串。它最重要的功能之一就是它允许你过滤一条命令或一个文件的输出、编辑文本或配置文件的一部分等等。

正则表达式的特点

正则表达式由以下内容组合而成:

  • 普通字符,例如空格、下划线、A-Z、a-z、0-9。

  • 可以扩展为普通字符的

    元字符

    它们包括:

    • (.) 它匹配除了换行符外的任何单个字符。
    • (*) 它匹配零个或多个在其之前紧挨着的字符。
    • [ character(s) ] 它匹配任何由其中的字符/字符集指定的字符,你可以使用连字符(-)代表字符区间,例如 [a-f]、[1-5]等。
    • ^ 它匹配文件中一行的开头。
    • $ 它匹配文件中一行的结尾。
    • / 这是一个转义字符。

你必须使用类似 awk 这样的文本过滤工具来过滤文本。你还可以把 awk 自身当作一个编程语言。但由于这个指南的适用范围是关于使用 awk 的,我会按照一个简单的命令行过滤工具来介绍它。

awk 的一般语法如下:

# awk 'script' filename

此处 ‘script’ 是一个由 awk 可以理解并应用于 filename 的命令集合

它通过读取文件中的给定行,复制该行的内容并在该行上执行脚本的方式工作。这个过程会在该文件中的所有行上重复。

该脚本 ‘script’ 中内容的格式是 ‘/pattern/ action’,其中 pattern 是一个正则表达式,而 action 是当 awk 在该行中找到此模式时应当执行的动作。

如何在 linux 中使用 awk 过滤工具

在下面的例子中,我们将聚焦于之前讨论过的元字符。

一个使用 awk 的简单示例:

下面的例子打印文件 /etc/hosts 中的所有行,因为没有指定任何的模式。

# awk '//{print}' /etc/hosts
如何使用AWK对文本进行过滤

awk 打印文件中的所有行

结合模式使用 awk

在下面的示例中,指定了模式 localhost,因此 awk 将匹配文件 /etc/hosts 中有 localhost 的那些行。

# awk '/localhost/{print}' /etc/hosts
如何使用AWK对文本进行过滤

awk 打印文件中匹配模式的行

在 awk 模式中使用通配符 (.)

在下面的例子中,符号 (.) 将匹配包含 loc、localhost、localnet 的字符串。

这里的正则表达式的意思是匹配 l一个字符c

# awk '/l.c/{print}' /etc/hosts
如何使用AWK对文本进行过滤

使用 awk 打印文件中匹配模式的字符串

在 awk 模式中使用字符 (*)

在下面的例子中,将匹配包含 localhost、localnet、lines, capable 的字符串。

# awk '/l*c/{print}' /etc/localhost
如何使用AWK对文本进行过滤

使用 awk 匹配文件中的字符串

你可能也意识到 (*) 将会尝试匹配它可能检测到的最长的匹配。

让我们看一看可以证明这一点的例子,正则表达式 t*t 的意思是在下面的行中匹配以 t 开始和 t 结束的字符串:

this is tecmint, where you get the best Good tutorials, how to's, guides, tecmint.

当你使用模式 /t*t/ 时,会得到如下可能的结果:

this is tthis is tecmintthis is tecmint, where you get tthis is tecmint, where you get the best good tthis is tecmint, where you get the best good tutorials, how tthis is tecmint, where you get the best good tutorials, how tos, guides, tthis is tecmint, where you get the best good tutorials, how tos, guides, tecmint

在 /tt/ 中的通配符 () 将使得 awk 选择匹配的最后一项:

this is tecmint, where you get the best good tutorials, how to's, guides, tecmint

结合集合 [ character(s) ] 使用 awk

以集合 [al1] 为例,awk 将匹配文件 /etc/hosts 中所有包含字符 a 或 l 或 1 的字符串。

# awk '/[al1]/{print}' /etc/hosts
如何使用AWK对文本进行过滤

使用 awk 打印文件中匹配的字符

下一个例子匹配以 K 或 k 开始头,后面跟着一个 T 的字符串:

# awk '/[Kk]T/{print}' /etc/hosts
如何使用AWK对文本进行过滤

使用 awk 打印文件中匹配的字符

以范围的方式指定字符

awk 所能理解的字符:

  • [0-9] 代表一个单独的数字
  • [a-z] 代表一个单独的小写字母
  • [A-Z] 代表一个单独的大写字母
  • [a-zA-Z] 代表一个单独的字母
  • [a-zA-Z 0-9] 代表一个单独的字母或数字

让我们看看下面的例子:

# awk '/[0-9]/{print}' /etc/hosts
如何使用AWK对文本进行过滤

使用 awk 打印文件中匹配的数字

在上面的例子中,文件 /etc/hosts 中的所有行都至少包含一个单独的数字 [0-9]。

结合元字符 (^) 使用 awk

在下面的例子中,它匹配所有以给定模式开头的行:

# awk '/^fe/{print}' /etc/hosts# awk '/^ff/{print}' /etc/hosts
如何使用AWK对文本进行过滤

使用 awk 打印与模式匹配的行

结合元字符 ($) 使用 awk

它将匹配所有以给定模式结尾的行:

# awk '/ab$/{print}' /etc/hosts# awk '/ost$/{print}' /etc/hosts# awk '/rs$/{print}' /etc/hosts
如何使用AWK对文本进行过滤

使用 awk 打印与模式匹配的字符串

结合转义字符 (/) 使用 awk

它允许你将该转义字符后面的字符作为文字,即理解为其字面的意思。

在下面的例子中,第一个命令打印出文件中的所有行,第二个命令中我想匹配具有 $25.00 的一行,但我并未使用转义字符,因而没有打印出任何内容。

第三个命令是正确的,因为一个这里使用了一个转义字符以转义 ,以将其识别为‘(而非元字符)。

# awk '//{print}' deals.txt# awk '/$25.00/{print}' deals.txt# awk '//$25.00/{print}' deals.txt
如何使用AWK对文本进行过滤

结合转义字符使用 awk

到此,相信大家对“如何使用AWK对文本进行过滤”有了更深的了解,不妨来实际操作一番吧!这里是编程网网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!

--结束END--

本文标题: 如何使用AWK对文本进行过滤

本文链接: https://www.lsjlt.com/news/312588.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • 如何使用AWK对文本进行过滤
    本篇内容主要讲解“如何使用AWK对文本进行过滤”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“如何使用AWK对文本进行过滤”吧!什么是正则表达式 正则表达式可以定义为代表若干个字符序列的...
    99+
    2023-06-27
  • 如何使用linux命令行工具进行文本行过滤
    小编给大家分享一下如何使用linux命令行工具进行文本行过滤,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!常用命令行工具接下来主要使用的是head,tail,se...
    99+
    2023-06-12
  • linux怎么对文本或输出内容进行过滤
    这篇文章主要讲解了“linux怎么对文本或输出内容进行过滤”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“linux怎么对文本或输出内容进行过滤”吧!在linux中经常需要对文本或输出内容进行...
    99+
    2023-06-09
  • jquery如何进行过滤
    本文小编为大家详细介绍“jquery如何进行过滤”,内容详细,步骤清晰,细节处理妥当,希望这篇“jquery如何进行过滤”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。 ...
    99+
    2024-04-02
  • 如何使用 PHP 函数对数据进行排序和过滤?
    php 提供了多种函数对数据排序和过滤,包括 sort()(升序)、rsort()(降序)、array_filter()(根据条件过滤)、array_map()(应用操作)和 array...
    99+
    2024-05-03
    php 数据排序过滤 数据排序 键值对
  • java如何使用过滤器进行拦截
    Java中使用过滤器进行拦截的步骤如下:1. 创建一个实现了javax.servlet.Filter接口的过滤器类,例如:```ja...
    99+
    2023-08-18
    java
  • 如何使用awk添加文本
    这篇文章主要为大家展示了“如何使用awk添加文本”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“如何使用awk添加文本”这篇文章吧。添加文本可以按照添加控制序列或其他字符的相同方式将文本添加到显示...
    99+
    2023-06-03
  • java项目中如何使用 web过滤器对乱码进行处理
    本篇文章为大家展示了java项目中如何使用 web过滤器对乱码进行处理,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。我们在servlet页面中读取前台的数据时  经常会出现乱码问题而自己每...
    99+
    2023-05-31
    java web过滤器 乱码
  • mongodb如何对文档内数组进行过滤的方法步骤
    本文介绍了mongodb如何对文档内数组进行过滤的方法步骤,分享给大家,具体如下: mongodb文档内包含数组,需要将数组中符合条件的数据过滤出来并返回结果集,可以用两种方式来查询group或filt...
    99+
    2024-04-02
  • 如何进行Google Analytics过滤设置
    这篇文章给大家介绍如何进行Google Analytics过滤设置,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。Google Analytics的过滤功能简介Google Analytics的过滤设置其实包含两大逻辑功...
    99+
    2023-06-12
  • linux中如何使用awk命令删除文本重复行
    linux中如何使用awk命令删除文本重复行,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。测试文本如下:# cat 1.txt2.1.10.12.1.10....
    99+
    2023-06-12
  • 使用python怎么对文本进行拆分
    使用python怎么对文本进行拆分?针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。python的数据类型有哪些python的数据类型:1. 数字类型,包括int(整型)、lo...
    99+
    2023-06-14
  • jQuery如何使用过滤器过滤多属性
    这篇文章给大家分享的是有关jQuery如何使用过滤器过滤多属性的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。使用过滤器过滤多属性//This precision-based approache...
    99+
    2023-06-27
  • 怎么用filter方法对数组元素进行过滤
    本篇内容介绍了“怎么用filter方法对数组元素进行过滤”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成! ...
    99+
    2024-04-02
  • 通过Python的jieba库对文本进行分词
    文章目录 前言一、jieba库是什么?二、安装jieba库三、查看jieba版本四、使用方法1.引入库2.定义需要分词的文本3.使用分词模式进行分词3.1精确模式(默认)3.2全模式3.3搜索...
    99+
    2023-09-03
    python 搜索引擎 人工智能
  • Java如何对文件进行基本操作
    这篇文章给大家分享的是有关Java如何对文件进行基本操作的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。File文件类java.io.File是文件和目录的重要类(JDK6及以前是唯一)目录也使用File类进行表示...
    99+
    2023-06-20
  • 如何在Linux中使用awk文本处理工具
    本篇文章为大家展示了如何在Linux中使用awk文本处理工具,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。代码如下:  [chengmo@localhost ~]$ awk ‘B...
    99+
    2023-06-13
  • 如何在Pig中进行数据过滤操作
    在Pig中进行数据过滤操作通常使用FILTER关键字。可以通过指定一个条件表达式来过滤出符合条件的数据。 例如,假设我们有一个包含学...
    99+
    2024-03-07
    Pig
  • 如何使用Node.js对文件进行重命名
    这篇文章主要介绍如何使用Node.js对文件进行重命名,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!前言hexo的文章基本都是生成在_post文件夹下,若文章多了以后就不好管理,所就...
    99+
    2024-04-02
  • css如何对换行文本使用box-decoration-break
    这篇文章主要为大家展示了“css如何对换行文本使用box-decoration-break”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“css如何对换行文本使用box-decoration-br...
    99+
    2023-06-27
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作