Ich habe mehrzeilige Textdateien mit (manchmal) tabulatorgetrennten Daten. Ich möchte die Datei ausgeben, damit ich einen Blick darauf werfen kann - also möchte ich nur die ersten 80 Zeichen jeder Zeile sehen (ich habe die Textdatei so gestaltet, dass das Wichtige in jeder Zeile an erster Stelle steht).
Ich hatte gedacht, ich könnte cat verwenden, um jede Zeile der Datei zu lesen und jede Zeile an den nächsten Befehl in einer Pipe zu senden:
cat tabfile | cut -c -80
Aber das schien kaputt zu sein. Ich habe versucht, herumzuspielen, und grep schien zu funktionieren - aber dann habe ich herausgefunden, dass dies nicht der Fall ist (nicht jede Zeile in der Datei hatte mehr als 80 Zeichen) - es scheint, dass Tabulatoren nach Schnitt als einzelne Zeichen gezählt werden.
Ich habe es versucht:
cat tabfile | tr \t \040 | cut -c -80
Auch wenn dies meine Daten ein wenig beschädigen würde, indem die Lesbarkeit des Leerraums beseitigt wird. Aber das hat nicht funktioniert. Weder tat:
cat tabfile | tr \011 \040 | cut -c -80
Vielleicht benutze ich tr falsch? Ich hatte zuvor Probleme mit tr, weil ich mehrere Leerzeichen entfernen wollte (anscheinend hat die Version von tr, auf die ich auf diesem Computer Zugriff habe, die Option -s, um mehrere Zeichen zusammenzudrücken - ich muss möglicherweise mehr damit spielen).
Ich bin mir sicher, wenn ich herumspielen würde, könnte ich Perl, Awk oder Sed oder etwas anderes verwenden, um dies zu tun.
Ich möchte jedoch eine Lösung, die (POSIX?) Reguläre Befehle verwendet, damit sie so portabel wie möglich ist. Wenn ich am Ende tr verwende, würde ich wahrscheinlich versuchen, Tabulatoren in Zeichen umzuwandeln, vielleicht eine Berechnung durchzuführen, die Berechnung zu kürzen und diese Zeichen dann wieder in Tabulatoren für die Ausgabe umzuwandeln.
Es muss keine einzelne Zeile sein / direkt in die Befehlszeile eingegeben werden - ein Skript ist in Ordnung.
Weitere Infos zu Tab-Dateien:
Ich benutze die Registerkarte, um Felder zu unterbrechen, weil ich eines Tages möglicherweise Daten in ein anderes Programm importieren möchte. Daher habe ich in der Regel nur eine Registerkarte zwischen den Inhalten. Ich verwende aber auch Registerkarten, um Dinge an vertikalen Spalten auszurichten und die Lesbarkeit beim Betrachten der Nur-Text-Datei zu verbessern. Das bedeutet, dass ich für einige Textteile das Ende des Inhalts mit Leerzeichen auffülle, bis ich an der Stelle bin, an der die Registerkarte das nächste Feld mit den darüber und darunter liegenden ausrichtet.
DarkTurquoise # 00CED1 Meere, Himmel, Ruderboote Natur MediumSpringGreen # 00FA9A Nützlich für Bäume Magie Limette # 00FF00 Nur zur Verwendung bei Frühlingshühnern und Obst
pr
von coreutils
: pr -1 -t -l200 -W80 file
. Erhöhen / verringern Sie die Seitenlänge (Anzahl nach -l
) nach Bedarf.