繁体   English   中英

perl +匹配文件中的最后一个单词+一个线性perl命令

[英]perl + match the last word in file + one liner perl command

通过以下Perl衬里命令,我可以匹配文件中的LAST_WORD

  • 姓氏可以带空格或不带空格

     perl -ne "print if /LAST_WORD\\s*$/" file 

Perl命令在具有Perl版本的Linux和Solaris上可以正常工作-v5.8.7

但是当我在Solaris 9计算机上的Perl 5.6.1版上运行它时

我收到以下错误

   perl -ne "print if /LAST_WORD\s*$/" file
   Illegal variable name.

请建议我的语法需要修复哪些内容,以便Perl命令将支持所有Perl版本?

或者也许是匹配文件中最后一个单词的其他好选择(带或不带空格)

尝试引用:

perl -ne "print if /LAST_WORD\s*\$/" file

比单引号更通用的解决方案。

我确认在Linux Perl 5.8+上也可以正常运行...现在无法在Solaris上检查,对不起...但是我想问题出在Solaris外壳程序中双引号逻辑内的变量解析不同Linux上的那个...

它与Perl无关,与您的Shell无关。

问题在于$在双引号文字中对于shell来说是特殊的。 您可以对其进行转义,但是使用单引号代替会更清洁。 单引号文字的内容保持不变。

perl -ne 'print if /LAST_WORD\s*$/' file

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM