iis服务器助手广告广告
返回顶部
首页 > 资讯 > 精选 >怎么用Awk模式筛选文本或字符串
  • 836
分享到

怎么用Awk模式筛选文本或字符串

2023-06-27 13:06:35 836人浏览 泡泡鱼
摘要

这篇“怎么用Awk模式筛选文本或字符串”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“怎么用Awk模式筛选文本或字符串”文章吧

这篇“怎么用Awk模式筛选文本或字符串”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“怎么用Awk模式筛选文本或字符串”文章吧。

在筛选文本时,有时你可能想根据某个给定的条件或使用一个可被匹配的特定模式,去标记某个文件或数行字符串中的某几行。使用 awk 来完成这个任务是非常容易的,这也正是 awk 中可能对你有所帮助的几个功能之一。

怎么用Awk模式筛选文本或字符串

让我们看一看下面这个例子,比方说你有一个写有你想要购买的食物的购物清单,其名称为 food_prices.list,它所含有的食物名称及相应的价格如下所示:

$ cat food_prices.listNo  Item_Name       Quantity    Price1   ManGoes            10       $2.452   Apples             20       $1.503   Bananas            5        $0.904   Pineapples         10       $3.465   Oranges            10       $0.786   Tomatoes           5        $0.557   ONIOns             5        $0.45

然后,你想使用一个 (*) 符号去标记那些单价大于 $2 的食物,那么你可以通过运行下面的命令来达到此目的:

$ awk '/ */$[2-9]/.[0-9][0-9] */ { print $1, $2, $3, $4, "*" ; } / */$[0-1]/.[0-9][0-9] */ { print ; }' food_prices.list
怎么用Awk模式筛选文本或字符串

打印出单价大于 $2 的项目

从上面的输出你可以看到在含有芒果和菠萝的那行末尾都已经有了一个 (*) 标记。假如你检查它们的单价,你可以看到它们的单价的确超过了 $2 。

在这个例子中,我们已经使用了两个模式: 第一个模式: / */$[2-9]/.0-9 */ 将会得到那些含有食物单价大于 的行。第二个模式[0-1]/.0-9 */ 将查找那些食物单价小于 $2 的那些行。

上面的命令具体做了什么呢?这个文件有四个字段,当模式一匹配到含有食物单价大于 $2 的行时,它便会输出所有的四个字段并在该行末尾加上一个 (*) 符号来作为标记。

第二个模式只是简单地输出其他含有食物单价小于 $2 的行,按照它们出现在输入文件 food_prices.list 中的样子。

这样你就可以使用模式来筛选出那些价格超过 $2 的食物项目,尽管上面的输出还有些问题,带有 (*) 符号的那些行并没有像其他行那样被格式化输出,这使得输出显得不够清晰。

我们在 awk 系列的第二部分中也看到了同样的问题,但我们可以使用下面的两种方式来解决:

可以像下面这样使用 printf 命令,但这样使用又长又无聊:

$ awk '/ */$[2-9]/.[0-9][0-9] */ { printf "%-10s %-10s %-10s %-10s/n", $1, $2, $3, $4 "*" ; } / */$[0-1]/.[0-9][0-9] */ { printf "%-10s %-10s %-10s %-10s/n", $1, $2, $3, $4; }' food_prices.list
怎么用Awk模式筛选文本或字符串

使用 Awk 和 Printf 来筛选和输出项目

使用 $0 字段。Awk 使用变量 0 来存储整个输入行。对于上面的问题,这种方式非常方便,并且它还简单、快速:

$ awk '/ */$[2-9]/.[0-9][0-9] */ { print $0 "*" ; } / */$[0-1]/.[0-9][0-9] */ { print ; }' food_prices.list
怎么用Awk模式筛选文本或字符串

使用 Awk 和变量来筛选和输出项目

以上就是关于“怎么用Awk模式筛选文本或字符串”这篇文章的内容,相信大家都有了一定的了解,希望小编分享的内容对大家有帮助,若想了解更多相关的知识内容,请关注编程网精选频道。

--结束END--

本文标题: 怎么用Awk模式筛选文本或字符串

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

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

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

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

下载Word文档
猜你喜欢
  • 怎么用Awk模式筛选文本或字符串
    这篇“怎么用Awk模式筛选文本或字符串”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“怎么用Awk模式筛选文本或字符串”文章吧...
    99+
    2023-06-27
  • 如何使用awk按模式筛选文本或字符串
    这篇文章主要介绍如何使用awk按模式筛选文本或字符串,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!在筛选文本时,有时你可能想根据某个给定的条件或使用一个可被匹配的特定模式,去标记某个文件或数行字符串中的某几行。使用 ...
    99+
    2023-06-10
  • Linux怎么过滤文本或文件中字符串
    本篇内容介绍了“Linux怎么过滤文本或文件中字符串”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!什么是正则表达式 正则表达式可以定义为代表...
    99+
    2023-06-28
  • C#中模式字符串怎么用
    这篇文章主要介绍了C#中模式字符串怎么用,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。利用正则表达式实现字符串搜索,在C#中使用.NET一般表达式引擎下面将通过一个样例的开发...
    99+
    2023-06-18
  • 使用Java怎么将字符串写入文本文件
    今天就跟大家聊聊有关使用Java怎么将字符串写入文本文件,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。一、Filewriter与File——-将字符串写入文本文件public&nbs...
    99+
    2023-05-30
    java 字符串
  • Python怎么利用base64库解码本地txt文本字符串
    这篇文章主要介绍“Python怎么利用base64库解码本地txt文本字符串”,在日常操作中,相信很多人在Python怎么利用base64库解码本地txt文本字符串问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答...
    99+
    2023-06-14
  • Pandas怎么使用分隔符或正则表达式将字符串拆分为多列
    这篇“Pandas怎么使用分隔符或正则表达式将字符串拆分为多列”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“Pandas怎么...
    99+
    2023-07-05
  • HTML字符实体与文本格式化标签怎么用
    小编给大家分享一下HTML字符实体与文本格式化标签怎么用,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!   HTML 字符实体...
    99+
    2022-10-19
  • python中怎么使用time模块指定格式时间字符串转为时间戳
    这篇“python中怎么使用time模块指定格式时间字符串转为时间戳”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“pytho...
    99+
    2023-07-05
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作