Uruchamiam program Perl. Cokolwiek jest drukowane na mojej konsoli, chcę przekierować do pliku tekstowego.Jak przekierować wyjście konsoli do pliku tekstowego
Odpowiedz
Preferowaną metodą jest obsługa przekierowania za pośrednictwem wiersza polecenia, np.
perl -w my_program.pl > my_output.txt
Jeśli chcesz także wyjście stderr następnie można to zrobić (zakładając swoją powłoki bash):
perl -w my_program.pl &> my_output.txt
W CLI można użyć >
coś takiego:
perl <args> script_name.pl > path_to_your_file
Jeśli chcesz to zrobić w skrypcie perla, dodaj ten kod przed wydrukowaniem czegokolwiek:
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
już zmęczony tym ... nie działa Użyłem print STDERR w moim pliku. ... – Cindrella
cóż, jeśli masz wyraźne odbitki do różnych uchwytów plików, powinieneś postępować zgodnie ze sposobem CLI, jak zaleca Paul R, a to pytanie prawdopodobnie powinno być oznaczone jako 'bash' lub podobne, ponieważ ma niewiele wspólnego z samym Perlem – ArtM
W systemie Unix, aby przechwycić wszystko, co trafia do twojego terminala, chcesz przekierować zarówno standardowe wyjście, jak i standardowy błąd.
z bashu polecenie przypomina
$ ./my-perl-program arg1 arg2 argn > output.txt 2>&1
powłoki C csh
pochodne, takie jak tcsh
i nowe wersje bash zrozumieć
$ ./my-perl-program arg1 arg2 argn >& output.txt
oznaczać to samo.
Składnia powłoki poleceń w systemie Windows przypomina powłokę Bourne'a.
C:\> my-perl-program.pl args 1> output.txt 2>&1
Aby skonfigurować to przekierowanie w kodzie Perl, dodać
open STDOUT, ">", "output.txt" or die "$0: open: $!";
open STDERR, ">&STDOUT" or die "$0: dup: $!";
do początku programu ’ s sprawozdania wykonywalnych.
Jeśli chcesz, aby Twoje wyniki będą drukowane na konsoli, a także dzienniki następnie dołączyć tę linię do ciebie kodu (np przed żadnej instrukcji print)
open (STDOUT, "| tee -ai logs.txt");
print "It Works!";
po ostatnim drukiem w skrypcie
close (STDOUT);
tylko dla komunikatów o błędach,
open (STDERR, "| tee -ai errorlogs.txt");
- 1. Jak mogę przekierować wyjście nosetests do pliku tekstowego?
- 2. Scala interactive interpreter (REPL) - jak przekierować wyjście do pliku tekstowego?
- 3. Jak przekierować wyjście kompilatora gcc do pliku?
- 4. Jak przekierować wyjście programu konsoli do pola tekstowego w sposób bezpieczny dla wątków?
- 5. Zapis wyjście do pliku tekstowego w PowerShell
- 6. Linux dodaje wyjście konsoli do pliku logu?
- 7. Czy można przekierować wyjście konsoli do pliku dziennika w systemie IntelliJ, podobnie jak Eclipse?
- 8. Jak mogę przekierować wyjście funkcji kości do pliku w Perlu?
- 9. Jak mogę przekierować wyjście portu COM Windows do pliku?
- 10. Jak przekierować Boost.Log do pliku
- 11. jak przekierować wyjście polecenia do dwóch plików
- 12. Python: Jak mogę przekierować to wyjście?
- 13. Jak włączyć wyjście sshpass do konsoli
- 14. NSLog() do konsoli i pliku
- 15. Wyjście konsoli MATLAB
- 16. Python: Jak przekierować wyjście z podprocesorem?
- 17. Używanie polecenia Linux Grep - potrzebne wyjście do pliku tekstowego, czystsze wyjście
- 18. Jak zapisać wyjście pliku AUGraph do pliku?
- 19. Kolorowe wyjście konsoli Xcode
- 20. Jak przekierować wyjście z polecenia dd do/dev/null?
- 21. Jak przekierować wyjście log4j do mojego strumienia wyjściowego HttpServletResponse?
- 22. Jak przekierować wyjście standardowe do nowej karty Vima?
- 23. Jak zalogować wyjście strat Keras do pliku
- 24. Przekieruj standardowe wyjście z SBT do pliku
- 25. Strace wyjście Tmux przekierowane do pliku
- 26. przekierowanie wyjścia do pliku tekstowego w C#
- 27. Jak przekierować wyjście z dala od/dev/null
- 28. Jak przekierować standardowe wyjście do pliku podczas korzystania z podprocesu.call w pythonie?
- 29. Jak dostosować kolory w konsoli 3.5 Wyjście konsoli
- 30. Wyjście konsoli C++ w Netbeans
Dlaczego nie po prostu zrobić to z poziomu wiersza poleceń: 'perl -w my_program.pl> output.txt'? –
@PaulR Nie mogę dać +1. Opublikuj to jako odpowiedź - jest to właściwy sposób na zrobienie tego. – Polynomial
http://stackoverflow.com/questions/387702/how-can-i-hook-into-perls-print –