我有一些 perl,它通過管道接收資料并運行
... | perl -0 -wnE 'say for /\d /g'
它列印從管道之前傳遞的每個數值。我將如何更改此語法以便僅列印找到的最后十個?
uj5u.com熱心網友回復:
... | perl -M5.010 -ne'say for /\d /g' | tail -10
... | perl -nle'print for /\d /g' | tail -10
僅限 Perl:
... | perl -M5.010 -ne'push @n, /\d /g; splice(@n, 0, -10); END { say for @n }'
... | perl -nle'push @n, /\d /g; splice(@n, 0, -10); END { print for @n }'
筆記:
-E不向前兼容,這意味著升級 Perl 可能會破壞程式。它應該只用于一次性代碼。替換為-M5.010 -e.-0是試圖吞食輸入檔案。這不是它的作用。-0777應該用于那個。但是沒有理由在這里吞下輸入檔案。
uj5u.com熱心網友回復:
您可以通過tailunix 命令對其進行管道傳輸以僅顯示最后 10 個數字:
... | perl -0 -wnE 'say for /\d /g' | tail -10
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/339619.html
