簡體   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