[英]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.