Zusammenfassung: w | tail
Zerhackt Zeilen nach der 78. Spalte.
Wenn ich den Befehl "w" ausführe, funktioniert er wie erwartet. Wenn ich die Ausgabe jedoch an "tail" weiterleite, wird die Ausgabe auf 78 Spalten Breite reduziert (alles wird nach dem rechten Rand abgeschnitten).
Ich habe überprüft set
und env
für beliebige Werte von 78 (oder 79 oder 80), sowie TERM
(xterm | ansi | VT100) und stty -a
Einstellungen sowie tail
und w
(sie sehen OK). $COLUMNS
ist auf 209 eingestellt (aber das spielt keine Rolle ... Ich habe es auf 100 mit den gleichen Ergebnissen eingestellt).
Ich verwende CentOS 5 (Kernel - 2.6.18). Die tail
und w
Binärdateien sehen für mich OK aus.
/ usr / bin / w: ELF 64-Bit-LSB-ausführbare Datei, AMD x86-64, Version 1 (SYSV), für GNU / Linux 2.6.9, dynamisch verknüpft (verwendet gemeinsam genutzte Bibliotheken), entfernt
CentOS$ cat 80.txt
1 2 3 4 5 6 7 8
012345678901234567890123456789012345678901234567890123456789012345678901234567890
----------+---------+---------+---------+---------+---------+---------+---------+
CentOS$ export COLUMNS=100
CentOS$ w | tail -5 | sed 's/./\./g'
.....................................................................
...............................................................................
...............................................................................
...............................................................................
...............................................................................
quelle
alias w='w | more
. Das hat mir sehr geholfen.Antworten:
Wenn
w
der Ausgang an ein Terminal geht.w
fragt den Terminaltreiber nach der Anzahl der Spalten ab und passt die Breite entsprechend an.Wenn die Ausgabe nicht an ein Terminal geht, z. B. an eine Pipe, wird auf eine feste Breite von 80 Spalten zurückgesetzt. Versionen
procps
seit 3.3.2 ermöglichen es, diesen Standard mit der$COLUMNS
Umgebungsvariablen zu überschreiben .Einige Shells mögen
zsh
oderbash
setzen die$COLUMNS
Variable, exportieren sie aber nicht. In ihnen können Sie tunWenn Sie nicht möchten, dass die Leitungen abgeschnitten werden, unabhängig davon, wie breit das Terminal ist, können Sie Folgendes tun:
Wenn Sie älter sind
w
, haben Sie wahrscheinlich keine andere Wahl, als ein breites Terminal zu emulieren. Mitzsh
:Andere Dinge, die ein Terminal emulieren können:
quelle
COLUMNS=0
funktioniert bei mir nicht Tut esCOLUMNS=1000
jedoch.