Я могу перенаправить вывод в файл или другой поток вывода с помощью System.setOut(...)
, но если я это сделаю:
System.out.print("\rTesting")
System.out.print("\rHello world!")
Тогда на терминале я бы просто увидел "Привет, мир!" в конце, но если я пишу в файл, я печатаю все символы и ТОЛЬКО хочу получить «Hello world!»
Я мог бы написать собственный OutputStream, который делает это, но я хочу обрабатывать вещи, идентичные моему терминалу, такие как обработка странных escape-последовательностей, таких как \ 033 [2K. Я пытался использовать cat
, echo
и tee
и перенаправлять в файл, но все это дает мне полную последовательность символов.
Решения для конкретной платформы хороши (хотя в идеале оно должно работать, по крайней мере, на любом разумном дистрибутиве Linux). Я даже в порядке с командой bash или чем-то, что позволит мне сделать это.