【问题标题】:Perl grep start of pattern to END of patternPerl grep 模式开始到模式结束
【发布时间】:2013-05-25 15:30:01
【问题描述】:

您好,我有如下文件示例。使用 perl 我需要从功能 A - 功能 B 中 grep 行

FeatureA:Y
Suporrted devices
:
:
:
:Suported device
FeatureB:Y
Suporrted devices
:
:
:
:Suported device
FeatureC:Y
:

【问题讨论】:

  • 那么您的问题到底是什么?你都尝试了些什么?什么不起作用?
  • 我有功能功能名称 ex FeatureA 我需要在我尝试过的功能下找到支持的设备 @arg1 = grep ( /$txt/i ,@arg);它只匹配特征而不是整个列表

标签: perl grep matching


【解决方案1】:
perl -ne'print if /^FeatureA:/ .. /^FeatureB:/'

...再说一次,您可能只想要 FeatureB 行的行,所以

perl -ne'print if ( /^FeatureA:/ .. /^FeatureB:/ ) =~ /^\d+\z/;'

【讨论】:

  • /E0/ 可能是更短的正则表达式?还有个人问题,为什么你更喜欢\z
  • @mpapec,如果你否定它,那只会打印 FeatureB 行,或者除 FeatureB 行之外的所有行。
  • @mpapec,与什么相反? $?为什么要检查换行符?
  • 我的意思是!~ /E0/\z$ 在此处的行为应该相同,因为 .. 运算符没有换行符?
  • @mpapec,就像我说的那样,它将打印除 FeatureB 之外的所有行,这是非常错误的。 // 是的,\n?\z 也是如此。我应该使用它吗?
猜你喜欢
  • 1970-01-01
  • 2013-10-21
  • 1970-01-01
  • 2018-12-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-03-02
相关资源
最近更新 更多