Perl:提取从 1 到 n 的行 (Windows)

2023-12-31

我想从 .csv 文件中提取第 1 行到第 n 行。使用这个

perl -ne 'if ($. == 3) {print;exit}' infile.txt 

我只能提取一行。如何将一系列行放入此脚本中?


如果您只有一个范围和一个可能串联的输入流,则可以使用:

#!/usr/bin/perl -n
if (my $seqno = 1 .. 3) {
    print;
    exit if $seqno =~ /E/;
}

但如果您希望它应用于每个输入文件,您需要捕获每个文件的结尾:

#!/usr/bin/perl -n
print if my $seqno = 1 .. 3;
close ARGV if eof || $seqno =~ /E/;

如果你想善待那些忘记参数的人,请在BEGIN or INIT clause:

#!/usr/bin/perl -n
BEGIN { warn "$0: reading from stdin\n" if @ARGV == 0 && -t }
print if my $seqno = 1 .. 3;
close ARGV if eof || $seqno =~ /E/;

值得注意的点包括:

  • 您可以使用-n or -p on the #!线。你也可以放一些(但是not所有)其他命令行开关 http://perldoc.perl.org/perlrun.html#Command-Switches在那里,像‑l or ‑a.

  • 数字文字为 标量触发器的操作数 每个运算符都与readline计数器,所以是一个标量1 .. 3是真的($. == 1) .. ($. == 3).

  • Calling eof没有任何论点也不是空括号表示最后读取的文件magic ARGV文件列表。这与eof(),这是结束entire <ARGV>迭代。

  • 触发器运算符的最终序列号以"E0"附加到它。

  • The -t运算符,调用 libc 的isatty(3),默认为STDIN句柄——与任何其他文件测试操作符不同。

  • A BEGIN{}块发生在编译期间,因此如果您尝试使用以下命令反编译此脚本‑MO=Deparse要查看它到底做了什么,将执行该检查。与INIT{}, 它不会。

  • 这样做将揭示隐式输入循环作为一个名为LINE您也许可以在其他情况下利用它来发挥自己的优势。

HTH

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Perl:提取从 1 到 n 的行 (Windows) 的相关文章

  • 将日期转换为指定格式并比较两个日期

    给定两个日期 Date1 format yyyy mm dd hh mm ss eg 2013 05 21 07 47 21 Date2 format Day Month date hh mm ss yyyy eg Thu Aug 1 09
  • Emacs cperl - 常量块中的缩进

    我正在运行基于 GNU Emacs 24 3 50 2 的 Aquamacs 3 0a cperl 版本是 6 2 当我编辑 Perl 常量块时 我得到了我不想要的额外缩进 use constant ONE gt 1 TWO gt 2 TH
  • Perl 中的“@_”有什么作用?

    我浏览了一些我在 Perl 类中编写的代码 我注意到了这一点 my string my stringarray split string 我想知道两件事 变量位于括号中的第一行 这是声明多个变量时所做的事情 如果我删除它们 它仍然可以正常工
  • 如何定义导入mongodb的分隔符

    我有一个数据集合 它由 特点 我将把数据收集添加到mongodb 所以我需要通过分离数据 特点 怎么样我的蒙戈进口公司命令看起来像 之前我已经成功导入csv通过以下命令创建文件 mongoimport d mydb c things typ
  • 导出 CSV 文件时出现编码问题

    我正在使用 Asp net mvc 生成 CSV 文件 但在处理葡萄牙语中的特殊字符时遇到问题 我使用以下代码返回文件 public FileContentResult RelMatriculas RelRematriculaVM mode
  • 从 shell 脚本调用 Perl,如何将返回值从 Perl 传递到 shell?

    我成功地从 shell 脚本调用 Perl 脚本 现在我想将 Perl 脚本的返回值传递给 shell 脚本 指示它是否成功 我该怎么做呢 只需使用适当的退出值退出 Perl 脚本即可 exit exit value exit 0 if p
  • 从 Perl 线程生成 Expect

    我正在编写一个脚本 该脚本需要定期 每 5 分钟 生成一个 Expect 进程来完成一些工作 下面是我的代码 它生成一个 Expect 进程并执行一些工作 脚本的主要进程始终在做一些其他工作 例如它可能等待用户输入 因为我在一个线程中调用这
  • 为什么Perl的SUPER调用不使用箭头方法?

    我注意到 当您调用超类的方法时 您需要执行以下操作 my self class gt SUPER new 为什么不是这样 my self class gt SUPER gt new 我怀疑是因为 class gt SUPER gt new
  • Python + Pandas + dataframe:无法将一个数据帧附加到另一个数据帧

    我有两个大的 CSV 文件 我已将它们转换为 Pandas 数据框 它们都有相同名称和相同顺序的列 event name category category id description 我想将一个数据帧附加到另一个数据帧 最后想将生成的数
  • 如何在没有循环的情况下初始化哈希中的值?

    我正在尝试找出一种无需经过循环即可初始化哈希的方法 我希望使用切片来实现这一点 但它似乎没有产生预期的结果 考虑以下代码 usr bin perl use Data Dumper my hash hash currency symbol B
  • 带有制表符分隔文本文件的 StreamReader

    我对这篇文章有类似的要求 使用文本文件在运行时填充 Gridview https stackoverflow com questions 13971165 populate gridview at runtime using textfil
  • 从逗号分隔的字符串中删除项目[重复]

    这个问题在这里已经有答案了 假设我有一个字符串 cat mouse dog horse 是否有正则表达式或函数可以按如下方式工作 1 cat return string gt mouse dog horse 2 mouse return s
  • CSV 提供的数据源第一列中存在奇数字符

    我有一个 CSV 文件 已添加到 Visual Studio 单元测试项目中 它有七列 如下所示 assessmentitemid reviewer1 reviewer2 reviewer3 reviewer4 reviewer5 revi
  • MySQL 导入 125000 行 CSV 的最快方法?

    这是我第一次使用 MySQL 除了对现有数据库进行一些基本查询之外 所以我不擅长解决这个问题 我有一个包含 125 000 条记录的 CSV 我想将其加载到 MySQL 中 我安装了版本 8 和工作台 我使用导入向导加载 CSV 它开始导入
  • 如何在 T-SQL 中将 CSV 转换为记录集?

    在我的存储过程中 我传递一个过滤器 使用 WHERE Column IN 子句 作为参数 参数值以 CSV 形式给出 将此 CSV 转换为记录集的最佳方法是什么 例子 SELECT FROM Employee WHERE Name IN J
  • 如何使用 Net::SSH::Perl 和公钥?

    我正在尝试使用Net SSH Perl使用公钥与此代码进行连接 my ssh Net SSH Perl gt new host debug gt 1 die 我将密钥放在 root ssh id rsa 和 root ssh identit
  • 如何避免 pandas 在保存的 csv 中创建索引

    我试图在对文件进行一些编辑后将 csv 保存到文件夹中 每次我使用pd to csv C Path of file csv csv 文件有一个单独的索引列 我想避免将索引打印到 csv 我试过 pd read csv C Path to f
  • 如何为不同的 Perl 应用程序安装专门的环境?

    就功能而言是否有与 Python 相同或接近的东西虚拟环境 http pypi python org pypi virtualenv what it does 但是对于 Perl 来说呢 我已经用 Python 进行了一些开发 并且将非系统
  • 使用 fgetcsv 循环遍历 csv

    我有一个包含 3 列的 csv 文件 电子邮件地址 名 and 姓 我已经到了可以使用以下代码打印数组的阶段 这会打印数组 因此每个字段都在一行中 我希望它打印的只是该行第一列中的值 这是如何完成的 关于 fgetcsv 的文档对我 相对初
  • 如何从 R 运行带有特定模块的 perl 脚本?

    我可以从终端运行 perl 脚本 myperlscript pl 没有任何问题 但是 如果我尝试从 RStudio 中运行相同的 perl 脚本 则会出现以下错误 command lt myperlscript pl outputfile

随机推荐

  • 如何为 Django 模型字段添加检查约束?

    子类化时db models Model 有时有必要添加额外的检查 约束 例如 我有一个Event模型与start date and end date 我想将验证添加到字段或模型中 以便end date gt start date 至少我知道
  • GKMinmaxStrategist 在最佳动作返回后修改模型

    我在相应的类中实现了 GKGameModel GKGameModelPlayer 和 GKGameModelUpdate 协议 在我请求最佳策略后 策略师更改了我的模型的董事会 我了解它的工作原理 制作模型的副本并尝试了所有动作 但我认为我
  • 为什么我不能使用切片模式来过滤 Window 迭代器?

    我有一个数字向量并使用windows 2 方法创建一个迭代器 为我提供相邻对 例如 向量 1 2 3 被转化为 1 2 2 3 我想使用find查找满足特定条件的切片的方法 fn step g u64 gt Option lt u64 u6
  • OctoberCMS:如何维持双向友谊关系?

    我正在延长rainlab user插件允许每个用户通过具有以下字段的简单中间表来拥有朋友 user id friend id status 我已经延长了User model use RainLab User Models User as F
  • CDI ViewScope 和 PrettyFaces:多次调用 @PostConstruct (JSF 2.2)

    我已经检查过类似的问题 这些问题声明 JSF 2 1 有这个错误 但我正在使用 JSF 2 2 让我们详细说明一下 我的环境 CDI 1 1 动态网络模块 3 0 爪哇 1 7 JSF 2 2 PrettyFaces 2 0 12 Fina
  • 如何使用 SSLSocket 接受 Java 自签名证书

    我花了很多时间浏览互联网来寻找解决方案 99 的示例都是针对 HTTPS 的 但我需要使我的代码能够与 SSL 服务器一起使用 我无法从中提取许可证 并且许可证是自签名的 我尝试使以下代码正常工作 SocketFactory factory
  • 使用 Control.Lens 的索引列表需要 Monoid 约束

    以下代码无法编译 LANGUAGE TemplateHaskell import Control Lens data MyType MyType Int data Outer Outer inners Inner data Inner In
  • 帮助制定三次缓动方程

    我有下面的代码 int steps 10 for int i 0 i lt steps i float t i float steps console log t t 输出以线性方式输出数字 如下所示 0 0 1 0 2 0 9 1 0 我
  • iText 5.5.3 PDFPCell:长文本在单元格中不正确(文本换行不正确)

    我正在尝试创建一个包含表格的波斯语 PDF 并且我想在其中写入内容 当我的绳子很长时 它不能正确适合单元格 感觉就像字符串颠倒地填充了单元格 我的意思是 例如当我想写 你好 我的朋友 怎么了 在单元格中 输出如下 这是怎么回事 我的朋友 你
  • 没有尾随闭包支持具有默认参数值的方法?

    您可以将下面的代码放入 Playgrounds 中 import UIKit class MyClass func foo a String b gt b func bar a String a b gt b let object MyCl
  • 从 SVN 迁移到 git 后如何修复行结束问题?

    我刚刚完成将 Subversion 存储库转换为 git 使用 git svn clone stdlayout authors file ourcommitters txt svn svn internalserver com 在这样做时
  • 无法从 /dev/input/event* 获取鼠标移动事件

    使用时无法获取鼠标移动事件evtest http cgit freedesktop org whot evtest tree evtest c测试输入事件的工具 我只收到三个鼠标事件 left click event type EV KEY
  • 使用 Web Audio API 或其他任何方式消除前端的静音

    我正在尝试在将浏览器中记录的音频文件发送到服务器存储之前修剪其前导和尾随静音 我一直在寻找示例来更好地理解 WebAudioApi 但示例很分散 并且涵盖了像 ScriptProcessorNode 这样的废弃方法 当我发现这个示例时 我以
  • 将列表中的字符串添加在一起

    我想改变列表 A B A A B 到列表 AB BA AA AB 我尝试定义一个新列表 其中删除第一个元素 然后将列表的字符串添加在一起 之后我计划删除新列表的最后一个元素以获得结果 lista sequences lista pop 0
  • 解码 JPEG Huffman 块(表)

    以下块由霍夫曼块标记嵌套 HUFF 0084 10 0 1 2 4 3 4 6 5 6 8 a 9 4 2 3 0 1 2 11 0 3 4 21 5 12 31 6 41 51 61 13 22 71 81 91 a1 14 32 b1
  • 与 Gradle 实验插件一起使用的 Gradle 版本

    我很难搜索我试图在 Android Studio 中使用的 Gradle Experimental 插件的文档 查看 Bintray 在以下页面上 https bintray com android android tools com an
  • Chrome 扩展:如何在弹出窗口点击中保留弹出窗口中的数据

    我正在尝试获取选定的文本并将其显示在 popup html 扩展名 中 我能够使用 chrome 扩展 api 的消息传递技术来传递数据 但每次我单击弹出窗口时 它都会清除存储的数据 于是我想到了使用存储api 我设法使用 chrome s
  • Graph Search API order by like fql

    有没有办法通过 Graph api 按键对结果进行排序 并选择 desc 或 asc 就像fql一样 在 FQL 中 我在末尾使用 ORDER BY start time ASC 执行事件查询 图形 API 中有类似的东西吗 目前无法对 G
  • Jupyter Windows 快捷方式默认损坏

    安装 Anaconda 后 Jupyter 笔记本快捷方式工作正常 其他 stackoverflow 答案表明您可以通过更改快捷方式属性中的 开始于 字段来更改默认工作目录 但是 如果 Anaconda 安装在针对单个用户的建议文件夹中C
  • Perl:提取从 1 到 n 的行 (Windows)

    我想从 csv 文件中提取第 1 行到第 n 行 使用这个 perl ne if 3 print exit infile txt 我只能提取一行 如何将一系列行放入此脚本中 如果您只有一个范围和一个可能串联的输入流 则可以使用 usr bi