perl实现,匹配并打印一个段落

2023-11-15

有一个应用场景,实现后,觉得还是记录下来。以后还会遇到的。

举例

根据## ==这样的行,匹配并打印该段落范围的所有行。
另外一点,打印出的内容,只允许存在max最大值和min最小值。

########
## sdsdfsdf
## 1123123
########
## ======== 1sdfs ======
## ====== 2saas ======
max 0.2323
max 0.2423
max 0.2343
max 0.2313
max 0.2300
max 0.2323
min 0.1221
## ====== 3ss ======
max 1.2323
max 1.2423
max 1.2343
max 1.2313
max 1.2300
max 1.2323
## ====== 3ss ======
min 2.2323
min 2.2423
min 2.2343
min 2.2313
min 2.2300
min 2.2323
## =====
## =====
#
###

perl代码

#!/usr/bin/perl
use strict;
use warnings;
my $debug=1;

open my $filei, "<", "$ARGV[0]" or die "file?";
my @max=();
my @min=();
my $line=0;

while(<$filei>){
    if($_ =~ /^## ====/){
        $line=$.;
        @max=sort(@max) if defined($max[0]);
        print "max $max[$#max]\n" if defined($max[0]);
        @min=sort(@min) if defined($min[0]);
        print "min $min[0]\n" if defined($min[0]);
        print $_;
        @max=();
        @min=();
    }
    elsif($_ =~ /^max\s+([0-9]+\.*[0-9]*)/){
        if($. > $line){
            push @max,$1;
        }
    }
    elsif($_ =~ /^min\s+([0-9]+\.*[0-9]*)/){
        if($. > $line){
            push @min,$1;
        }
    }
    else{
        print $_;
    }
}


close $filei;

__END__
1. 定义数组
my @max=();
和
my @max=undef;
竟然不是一回事。
在push @max,"ssss"命令之后,
第一种写法的$max[0]="ssss"
第二种写法的$max[0]是undef,$max[1]="ssss"

执行结果如下:

########
## sdsdfsdf
## 1123123
########
## ======== 1sdfs ======
## ====== 2saas ======
max 0.2423
min 0.1221
## ====== 3ss ======
max 1.2423
## ====== 3ss ======
min 2.2300
## =====
## =====
#
###
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

perl实现,匹配并打印一个段落 的相关文章

  • 如何在 Perl 中使用原始套接字?

    你怎样才能得到一个rawPerl 中的套接字 那么构建与其一起使用的数据包的最佳方法是什么 与在 C 中执行的操作相同 通过在创建套接字时设置套接字类型 在示例中CPAN http search cpan org rgarcia perl
  • 如何将 NTLM 身份验证与 Perl 的 SOAP::Lite 模块集成?

    此 Perl 代码适用于对 ASP NET Web 服务的匿名访问 但当打开集成安全性时 该服务会返回 401 错误 我认为我需要将 NTLM 模块与 SOAP Lite 结合使用 但尚不清楚如何做到这一点 如何集成这些组件 use SOA
  • 如何在 Perl 中循环访问类的所有方法?

    如何在 Perl 中循环访问一个类的所有方法 有没有关于 Perl 内省或反射的好的在线参考 Todd Gardner 使用 Moose 的建议很好 但他选择的示例代码并不是很有帮助 如果你正在检查一个非 Moose 使用类 你会这样做 u
  • 使用 Visual Studio Code 调试 Perl

    我今天刚开始使用 Perl 并安装了活动Perl https en wikipedia org wiki ActivePerl5 24 1 一切都很顺利 我能够创建我的测试程序testPerl pl与简单的print命令并运行它consol
  • 无法在 Perl 中找到 DBI.pm 模块

    我使用的是 CentOS 并且已经安装了 Perl 5 20 并且默认情况下存在 Perl 5 10 我正在使用 Perl 5 20 版本来执行 Perl 代码 我尝试使用 DBI 模块并收到此错误 root localhost perl
  • 如何在 Perl 中修改 Windows NTFS 权限?

    我在 Windows Server 2003 上使用 ActiveState Perl 我想在 Windows NTFS 分区上创建一个目录 然后授予 Windows NT 安全组对该文件夹的读取访问权限 这在 Perl 中可能吗 我必须使
  • 将 stdin/stdout 从执行进程重定向到 Perl 中的管道

    我试图让执行子进程中的 STDOUT STDERR 通过 Perl 中的管道返回到父进程 我见过的最接近我想做的事情是 http forums devshed com perl programming 6 exec and redirect
  • 何时计划 (SELECT) 查询?

    在 PostgreSQL 中 什么时候计划 SELECT 查询 Is it 在报表准备时 或者 在处理 SELECT 开始时 或者 别的东西 我问的原因是 Stackoverflow 上有一个问题 相同的查询 两种不同的方式 性能截然不同
  • perl - 子进程向父进程发送信号

    我编写了以下代码来测试孩子和父母之间的信号传递 理想情况下 当子进程向父进程发出 SIGINT 时 父进程应该在新的迭代中返回并等待用户输入 我在 perl 5 8 中观察到了这一点 但在 perl 5 6 1 我被要求使用 中 父级实际上
  • 在 Perl 中,“$a”和“$b”在 sort() 函数之外还有什么特殊用途吗?

    我问了一个关于 Perl 中 a 和 b 使用的问题sort 前几天的功能 Perl 的 sort 函数中的 a 和 b 到底是什么 https stackoverflow com questions 26127617 what exact
  • Mojolicious:我应该使用一个还是多个 websocket?

    我正在自学 Mojolicious 和 websockets 到目前为止 我已经有了一个网页 它显示数据库中的行 并具有用于添加 删除和更新行以及选择用于排序的列的按钮 目前 它在每个按钮的 javascript onclick 处理程序中
  • 如何检测FTP文件传输完成?

    我正在编写一个脚本 用于轮询 FTP 站点上的文件并在可用时将它们下载到本地 文件由各个来源方随机存放到 FTP 站点 我需要一种方法能够在下载之前检测 FTP 站点上的文件是否已被源方完全传输 关于如何解决这个问题有什么想法吗 如果您可以
  • Perl 拆分和正则表达式

    我有以下字符串 100 California Grown Olives Water Salt And Ferrous Gluconate An Iron Derivative asasd sadasda 我想把它分开 but only if
  • Perl 三元条件运算符内部赋值问题

    我的程序中的这段 Perl 代码给出了错误的结果 condition a 2 a 3 print a 无论价值如何 condition就是 输出总是3 为什么呢 Perl 中对此进行了解释文档 http perldoc perl org p
  • 是否有与 pdl2(或 Devel::REPL)中的 perl 调试器“x”等效的东西?

    我在用pdl2 the PDL http p3rl org PDLshell 也作为我的默认 Perl 交互式 shell 它加载所有不错的插件Devel REPL http search cpan org perldoc Devel 3a
  • 在 Perl 中解析 RSS/Atom 的最佳库是什么? [关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 我注意到XML RSS 解析器 http search cpan org dist XML RSS P
  • 使用“严格引用”时不能使用字符串作为 ARRAY 引用

    我正在尝试执行下面提到的代码并观察到错误 在使用 严格引用 时 无法使用字符串 RCSoWLAN ePDG 2 Qguest ASUS ATT 作为 ARRAY 引用 Perl代码 perl64 bin perl use strict us
  • 导入 .pl 文件

    我想知道如何将 Perl 文件导入到脚本中 我尝试了 use require 和 do 但似乎没有什么对我有用 这就是我用 require 做到的 usr bin perl require equations print x1 n 是否可以
  • 如何使用 Perl 和正则表达式将 SQL 文档转换为 ColdFusion 脚本?

    我需要将 SQL 语句文档转换为 ColdFusion 文档 我对正则表达式只有一点经验 而且我是 Perl 超级新手 我昨天刚刚自学了它的基础知识 所以我可以完成这项任务 我正在尝试用 Perl 编写的脚本匹配和替换模式 该脚本保存为 B
  • 在 Perl 中查找数组的大小

    我似乎遇到过几种不同的方法来查找数组的大小 这三种方法有什么区别呢 my arr 2 print scalar arr First way to print array size print arr Second way to print

随机推荐

  • Angular 4/5 form表单select初始化选中(简单string和复杂对象)

    1 问题场景 管理员增删改查中的 改 操作 管理员有性别 sex 和岗位 position 属性 其中 性别在后端为枚举类型 position为类 要求进入管理员修改页时 自动选择性别 通过接口获取所有岗位 并自动选中当前管理员的岗位 2
  • live555构建流媒体服务器(1)

    读test 264码流文件 客户端可以通过ffplay exe rtsp xxx播放出来 直接使用编译好的库 改自testOnDemandRTSPServer cpp include liveMedia hh include BasicUs
  • 【maven】论 maven settings 文件 mirrors 对 IDEA 的影响

    文章目录 1 概述 1 概述 事情是这样的 我们要升级flink 1 9 1 升级到 1 12 4 然后因为在内网 所以我拷贝了大量的jar包 然后先放在本地 然后再放入内网的私服上 结果 我的代码需要大量的显示引入包 才能因为依赖 不然到
  • 如何用ChatGPT制作xmind

    第一步 向ChatGPT提问内容Q 去旅游要分几个步骤 第二步 输出格式Q 转换markdown格式点击右上角 copy code注意 如果结果不是代码形式 补充一句提问 请用代码形式呈现 第三步 复制到text 改后缀 1 复制到text
  • Coverity 代码静态安全检测

    转自 http blog csdn net yasi xi article details 8349985 最近公司在推行代码Security检查 使用了Coverity代码静态检测工具 功能很强大 超乎我的期望 主要功能如下 列出不会被执
  • inline在c语言作用,[转载]C语言标准C99 内联函数(inline)总结

    1 定义 它们看起来象函数 运作起来象函数 比宏 macro 要好得多 使用时还不需要承担函数调用的开销 当内联一个函数时 编译器可以对函数体执行特定环境下的优化工作 这样的优化对 正常 的函数调用是不可能的 2 规则 inline关键字必
  • 【java】JDBC链接

    文章目录 一 JDBC API 二 JDBC加载 三 JDBC连接 MySQL8 MySQL5 四 API常用方法 Statement ResultSet 五 PreparedStatement 1 为什么要使用PreparedStatem
  • 英区智齿发炎自救 -- 牙周炎,抗菌治疗+止疼治疗+中医药辩证治疗

    英区智齿发炎自救 periodontitis 左下角半包半露的智齿又发炎了 这次来势凶猛 前阵子发炎我用Corsodyl漱口水 饭后盐水漱口就足够把他压下去 这次用了两天牙龈还是肿上天 严重的话超级有效的组合是阿莫西林 奥 甲硝唑 配合Co
  • open函数返回值为0

    open函数是我们开发中经常会遇到的 这个函数是对文件设备的打开操作 这个函数会返回一个句柄fd 我们通过这个句柄fd对设备文件读写操作 我们在对这个fd作判断的时候 经常会用到 fd open filename O RDONLY If f
  • [游戏开发]俄罗斯方块实现

    0 前言 整理一下 游戏开发的入坑作 俄罗斯方块 这里包含了 c 实现的俄罗斯方块处理 控制台 有界面 以及后续用 unity 做的版本 项目的代码太多 就都放在链接了 可以直接下载好了 就放百度云好了 也不会污染代码库 挠头 项目链接如下
  • 魔术师猜数

    在一种室内互动游戏中 魔术师要每位观众心里想一个三位数abc a b c分别是百位 十位和个位数字 然后魔术师让观众心中记下acb bac bca cab cba五个数以及这5个数的和值 只要观众说出这个和是多少 则魔术师一定能猜出观众心里
  • docker容器中elasticsearch配置跨域访问(elasticsearch-head插件访问不到es集群)

    问题 docker容器中elasticsearch配置跨域访问 elasticsearch head插件访问不到es集群 原因 elasticsearch head插件访问不到es集群 是因为调用过程中出现了跨域问题 解决方法 docker
  • 基于宝塔面板成功配置网站SSL安全证书(支持https访问)

    前提条件 你熟悉宝塔面板搭建网站 我这个建站老鸟都在用宝塔面板建站 主要就是图它的节省时间和精力 大家有不熟悉宝塔面板使用的 可以查看文章 宝塔面板添加WordPress站点详细图文教程 之后你就完全可以入门了 你拥有一台云服务器和一个万网
  • 服务器基准测试

    https bp aliyun com detail 189 Version 5 1 3 Based on the Byte Magazine Unix Benchmark Multi CPU vers
  • 每天Leetcode 刷题 初级算法篇-缺失数字

    题目要求 缺失数字 力扣题解 代码 import java util Arrays program mydemo description 缺失数字 author Mr zeng create 2021 03 03 09 49 public
  • 【ChatGPT】原生JS实现ChatGPT小型Demo

    初入前端的小白也可以尝尝鲜 无需科学上网 调用API2D的接口进行连接 也可以换成官方API 均有免费额度 第一步 注册API2D https api2d com r 187255 使用GitHub或邮箱进行注册登录 通过 GitHub 注
  • MySql详解(一)--架构篇

    MySQL架构篇 逻辑架构 Connectors 连接器 指的是不同语言中与SQL的交互 ManagementServeices Utilities 系统管理和控制工具 ConnectionPool 连接池 管理缓冲用户连接 线程处理等需要
  • no node folder is found in data folder(s), node has not been started yet?]

    报错 no node folder is found in data folder s node has not been started yet ES 角色调整后报该错误 过程 把 Master DataNode 节点 切换为纯 Mast
  • Linux 下ELF 文件理解及C/C++代码实现

    ELF 就是 Executable and Linkable Format 它定义了可重定位文件 可执行文件和 共享目标文件的结构 这种格式能让操作系统正确解释文件中的机器指令 理解ELF文件 目标文件 格式主要三种结构 可重定向文件 Re
  • perl实现,匹配并打印一个段落

    有一个应用场景 实现后 觉得还是记录下来 以后还会遇到的 举例 根据 这样的行 匹配并打印该段落范围的所有行 另外一点 打印出的内容 只允许存在max最大值和min最小值 sdsdfsdf 1123123 1sdfs 2saas max 0