请问怎么打印出某一行到文件结束

请问怎么打印出某一行到文件结束

在shell中可以用 sed -n '/regular exp/, $p';
请问在perl中怎么实现啊?
如果那一行内容如此:CCODE/U2/1=3
多谢!


[Copy to clipboard] [ - ]
CODE:
perl -ne 'print if (/\QCCODE/U2/1=3\E/ .. /dummy/)'  your_file_here

其中dummy是一个你文件中不可能出现的字符串
perl -ne 'print if /\QCCODE/U2/1=3\E/ .. eof'  <FILE>
这个问题我记得在perl被问了不下10次了。


QUOTE:
类似 sed 程序里的“$”,eof 会显示行数范围。下面是一个打印从 /parrern/ 到每个输入文件结尾之间的行的脚本:


   while (<>) {
      print if /pattern/ .. eof;
   }
这里,触发器操作符(..)为每一行进行模式匹配。在模式匹配上之前,该操作符返回假。当它最终匹配上的时候,该操作符开始返回真,导致行的打印输出。当 eof 操作符最终返回真(在被检查的文件的结尾),该触发器操作符被重置,并且开始为 @ARGV 里的下一个文件返回假。

警告:eof 函数读取一个字节然后用 ungetc(3) 把它退回输入流中,所以在交互的环境中没有什么用。实际上,有经验的 Perl 程序员很少使用 eof,因为各种输入操作符的行为 while 循环里已经很礼貌了。参阅第四章里的 foreach 的讨论。

---------------------《大骆驼》


QUOTE:
原帖由 forlorngenius 于 2008-9-22 21:25 发表
这个问题我记得在perl被问了不下10次了。

我说怎么觉得前几天刚看过。看来没记错
多谢各位。

提问之前已经试着查过历史记录了, 不过没能找到, 惭愧了。

大骆驼 p289, 多谢。