Deaktivieren Sie den Zeilenumbruch für die Ausgabe im Terminal

69

Ich lese oft Ausgaben im Terminal, die eingepackt werden, weil sie zu lang sind. Da ich die gedruckte Ausgabe nicht ändern kann, muss das Terminal das horizontale Scrollen zulassen.

Gibt es eine Änderung, die ich am OS X-Standardterminal vornehmen kann, um den Zeilenumbruch zu deaktivieren und horizontales Scrollen zu ermöglichen ?

Oder kennen Sie eine andere Alternative, die ich verwenden kann?

Gentmatt
quelle
Alte Frage, aber scheint mir, dass es noch ungelöst ist. Ich brauche dieselbe Antwort, da ich die Ausgabe von beispielsweise GCC nicht weiter bearbeiten kann: gcc.gnu.org/onlinedocs/gcc/Language-Independent-Options.html Mit dem -fmessage-length=0gesetzten Flag erhalte ich immer noch mehrere Leitungswarnung / Fehlerausgabe. und ich nicht (vorerst).
Michael Trouw

Antworten:

51

tput hat den Trick für mich gemacht:

tput rmam

Deaktiviert den Zeilenumbruch.

tput smam

Aktiviert Zeilenumbruch.

michid
quelle
13
+1, aber wie kann man auch horizontales Scrollen hinzufügen?
Erik Allik
Mit den Pfeiltasten kann ich horizontal zum nächsten Bildschirm wechseln.
michid
7
Ich verstehe nicht, wie man die Pfeiltasten benutzt ... sie funktionieren bei mir nicht. Diese Lösung scheint nur die Linien auf die Breite des aktuellen Fensters zu kürzen. Wenn ich das Fenster vergrößere, befindet sich rechts neben den Zeilen, von denen ich weiß, dass sie mehr Zeichen enthalten, nur ein leerer Bereich. Diese Lösung ist jedoch für meine Zwecke nützlich, da ich Protokolle anzeige und die Informationen ganz rechts im Moment keine Bedeutung haben.
Jason
2
schön zu finden! fügte mir ein paar denkwürdige Aliasnamen hinzu: alias wrapon='tput rmam'&alias wrapoff='tput smam'
Chris J Allen
2
Sprechen Sie über verschleierte Befehle
Andy
7

Leiten Sie den Ausgang durch less -S:

   -S or --chop-long-lines
          Causes lines longer than the screen width to be chopped (truncated)
          rather than wrapped.  That is, the portion of a long line that does
          not fit in the screen width is not shown.  The default is  to  wrap
          long lines; that is, display the remainder on the next line.

Ich versuchte zu erklären , was man vor sich gehen hier , obwohl dies nicht in einer Weise führen wird horizontal mit einer Scrollbar blättern, wie Sie scheinen zu wollen.

mtklr
quelle
6

iTerm 2 scheint auch das Deaktivieren des Zeilenumbruchs nicht zu unterstützen. Sie können aber auch weniger verwenden oder schneiden:

less /var/log/system.log
expand /var/log/system.log | cut -c 1-$COLUMNS
less -s <<< "$(osascript -e 'tell app "Terminal" to contents of window 1')"
Lri
quelle
1

Wenn Sie es sind (wie andere als Lösung vorschlagen, obwohl Sie nach direkter Ausgabe gefragt haben), leiten Sie die Ausgabe in eine Datei somename.log um und öffnen Sie sie mit Applications> Utilities> Log-Viewer (oder über die Befehlszeile als open somename.log).

Es befindet sich nicht im Terminal, aber ich fand, dass der Protokoll-Viewer derjenige ist, der für große Ausgabemengen (Suchen, Scrollen, Filtern) am besten geeignet ist.

Nicholaz
quelle
Ich denke du meinst das Console.app, oder? Es gibt keine Log Viewer.appin den Dienstprogrammen. Die Konsole wird jedoch auch umgebrochen. Der einzige Unterschied besteht darin, dass standardmäßig lange Zeilen verkürzt werden. Sie müssen darauf klicken, um alles zu lesen - das hilft leider nicht weiter.
Gentmatt
0

Abhängig davon, was Sie versuchen aufzuhören, können Sie vim verwenden. Starten Sie also vim in der Datei mit den langen Zeilen und geben Sie Folgendes ein:

:se nowrap
Philip Kearns
quelle
1
Dies wird nicht helfen, da ich keine Dateien lese. Ich lese Netzwerkinformationen über lsof.
Gentmatt
0

Verwenden cut

myscript | cut -c -100
Alexey Petrushin
quelle