有沒有簡單的方法來模擬腳本中-l
命令行開關的效果? (當然,我可以隨時chomp
每一行,然後追加「\ n」來每行我打印的,但關鍵是要避免這樣做。)如何模仿-l內部腳本
3
A
回答
5
號你可以獲得的自動附加通過使用$\
,但你必須自己添加chomp。
以下是-l
的工作原理。
$ perl -MO=Deparse -ne 'print $_'
LINE: while (defined($_ = <ARGV>)) {
print $_;
}
$ perl -MO=Deparse -lne 'print $_'
BEGIN { $/ = "\n"; $\ = "\n"; } # -l added this line
LINE: while (defined($_ = <ARGV>)) {
chomp $_; # -l added this line
print $_;
}
(的意見是我的。)請注意,在-l
通過-n
產生循環的開始添加文字chomp $_
(和它只做如果使用-n
或-p
)。沒有變量可以設置爲模仿該行爲。
這是一個鮮爲人知的事實,-l
,-n
和-p
通過將樣板文本包裝在您編譯前提供的代碼上工作。
1
你可以把它添加到你的家當行:
#!/usr/bin/perl -l
3
是,嘗試家當後,使用此在腳本的開始和狹窄:
$/ = $\ = "\n"; # setting the output/input record separator like OFS in awk
,並在循環使用:
chomp;
print;
或者這樣:
use strict; use warnings;
use English qw/-no_match_vars/;
$OUTPUT_RECORD_SEPARATOR = "\n";
while (<>) {
chomp;
print;
}
我不推薦使用
#!/usr/bin/perl -l
一個更好的清晰度=)
+1
這隻提供'-l'的一半功能,它也自動連接輸入線。 – Borodin
相關問題
- 1. iframe內的l腳本
- 2. 如何使用kill -l在bash腳本
- 3. 內部腳本
- 4. 模仿鼠標點擊的vbs腳本
- 5. 流星模板內部腳本標記
- 6. 如何模仿
- 7. Exchange Powershell - 如何從腳本內部調用Exchange 2010模塊?
- 8. 如何訪問java腳本函數內部的模型屬性
- 9. 如何從腳本內部禁止輸出bash腳本?
- 10. 放置bash腳本內部時如何剿.SQL腳本輸出
- 11. 如何在內部腳本完全加載後運行腳本?
- 12. 如何從腳本內部重新啓動ruby腳本?
- 13. document.write腳本內部不執行腳本
- 14. 如何模仿CustomStringConvertible
- 15. 如何模仿WellKnownSidType?
- 16. 如何在外部和內部鏈接腳本?
- 17. ModalPopupExtender HTML模仿內容
- 18. @使用Unicode腳本的模式\\ p {L} *不起作用
- 19. Ruby:使用腳本內部的外部腳本進行比較
- 20. 如何做外部腳本?
- 21. 如何從構建腳本更新Bamboo內部版本號?
- 22. 如何獲取java腳本中的節點內部文本?
- 23. 如何在bash腳本中運行cd(subshell外)
- 24. 如何從PowerShell腳本內
- 25. 如何模仿好圖案
- 26. 如何模仿ActionBar菜單?
- 27. 如何模仿URI查詢
- 28. 如何模仿此佈局
- 29. IdentityServer4 - 如何實施模仿
- 30. 如何模仿grafana後端?
謝謝!我以爲我沒有成功就嘗試過這種方法,但是我一定是做了一些其他的錯誤,因爲當我再次嘗試時,它會像預期的那樣工作。 – kjo
不,我說得太快了:上述不適合我(自動chomp不會發生)。 – kjo