我正在執行Perl程序。無論打印在我的控制檯上,我想將 重定向到文本文件。如何將控制檯輸出重定向到文本文件
9
A
回答
16
爲此的首選方法是通過命令行處理重定向,例如,
perl -w my_program.pl > my_output.txt
如果您還想包括stderr輸出,那麼你可以這樣做(假設你的shell是bash):
perl -w my_program.pl &> my_output.txt
10
在CLI中,您可以使用>
,像這樣:
perl <args> script_name.pl > path_to_your_file
如果你想在perl腳本中這樣做,在你打印任何東西之前添加下面的代碼:
open(FH, '>', 'path_to_your_file') or die "cannot open file";
select FH;
# ...
# ... everything you print should be redirected to your file
# ...
close FH; # in the end
5
在Unix上,爲了捕獲到終端的所有內容,您需要重定向標準輸出和標準錯誤。
使用bash,命令酷似
$ ./my-perl-program arg1 arg2 argn > output.txt 2>&1
C shell中,csh
衍生物如tcsh
和bash的較新版本理解
$ ./my-perl-program arg1 arg2 argn >& output.txt
爲是指相同的東西。
Windows上的命令shell的語法類似於Bourne shell。
C:\> my-perl-program.pl args 1> output.txt 2>&1
要建立這種重定向在你的Perl代碼,添加
open STDOUT, ">", "output.txt" or die "$0: open: $!";
open STDERR, ">&STDOUT" or die "$0: dup: $!";
到您的程序’的可執行語句的開始。
1
如果你想在控制檯打印你的輸出和日誌,然後(如之前的任何打印語句)
open (STDOUT, "| tee -ai logs.txt");
print "It Works!";
最後一次打印後在腳本中添加此行到您的代碼
close (STDOUT);
僅適用於錯誤信息,
open (STDERR, "| tee -ai errorlogs.txt");
相關問題
- 1. scala 2.11:如何將控制檯輸出重定向到文件
- 2. Robot Framework:如何將控制檯輸出重定向到文件
- 3. 將SWI-Prolog控制檯輸出重定向到一個文件
- 4. 將整個控制檯輸出輸出到文本文件
- 5. 重定向輸出和錯誤到文件和控制檯
- 6. 控制檯重定向輸出到文件上的AWS S3
- 7. 輸出重定向到文件和控制檯
- 8. 在Eclipse插件開發中如何將控制檯視圖輸出重定向到文本文件
- 9. 如何將Python控制檯輸出重定向到QTextBox
- 10. Tomcat如何將verbose:gc控制檯輸出重定向到catalina.out
- 11. (Eclipse RCP)如何將輸出重定向到控制檯視圖?
- 12. 如何將nosetests的輸出重定向到文本文件?
- 13. 如何將程序輸出重定向到文本文件
- 14. 如何使用AMPL接口將SCIP控制檯輸出重定向到文本文件?
- 15. 將Tomcat 7控制檯日誌輸出重定向到文件(Windows)
- 16. 將調試輸出從XCode 4控制檯重定向到日誌文件
- 17. 重定向SYSOUT&SYSERR輸出(控制檯),日誌文件中tomcat7
- 18. 重定向控制檯輸入和輸出到一個文本框
- 19. 如何將控制檯輸出重定向到模塊內的PowerShell輸出?
- 20. 如何建議Cronjob將控制檯輸出重定向到url或腳本?
- 21. 如何將python腳本cmd輸出重定向到文件?
- 22. 如何使用腳本將stdout重定向到文件和控制檯?
- 23. Ruby將輸出重定向到文件
- 24. 將execlp輸出重定向到文件
- 25. 將ttisql輸出重定向到文件
- 26. 將w輸出重定向到文件
- 27. 在C++中,如何將幾行文本輸出到控制檯?
- 28. 重定向輸出到輸出文件
- 29. 導出eclipse控制檯視圖輸出到文本文件
- 30. 如何使用java將控制檯輸出存儲到文本文件?
爲什麼不這樣做的命令行:'perl的-w my_program.pl> output.txt'? –
@PaulR我不能+1足夠。發佈這個答案 - 這是做到這一點的正確方法。 – Polynomial
http://stackoverflow.com/questions/387702/how-can-i-hook-into-perls-print –