[gelöst] Eine 2-spaltige Textdatei aus zwei

Du hast Probleme mit Deinem eMail-Programm, Webbrowser oder Textprogramm? Dein Lieblingsprogramm streikt?
Antworten
mullers

[gelöst] Eine 2-spaltige Textdatei aus zwei

Beitrag von mullers » 22.05.2015 08:12:14

Ich habe also zwei Textdateien und ich würde gerne daraus eine Datei machen, bei der der Inhalt der beiden Dateien jeweils in einer Spalte steht.
Erst mal kein großes Problem, ich setze die erste in eine Datei und kopiere die zweite in eine Spalte daneben. So weit so gut. Ich würde das aber auch gerne auf der Kommandozeile machen können.

Paste/column ist schon mal ziemlich gut:

Code: Alles auswählen

paste 1.txt 2.txt | column -s $'\t' > drei.txt
Jedoch finde ich da keine Möglichkeit, die Spaltenbreite einzustellen.

Und wenn wir schon bei der Spaltenbreite sind, ich würde eventuell auch noch nroff bemühen,

Code: Alles auswählen

nroff 1.txt > eins.txt
und die so formatierten Textdateien zusammensetzen. Allerdings finde ich auch keine Möglichkeit bei nroff, die Zeilenlänge einzustellen. Es soll ja mit der Option `-rLL' funktionieren, tut es aber nicht.

Gruesse
henry
Zuletzt geändert von mullers am 22.05.2015 10:39:27, insgesamt 1-mal geändert.

uname
Beiträge: 12075
Registriert: 03.06.2008 09:33:02

Re: Eine 2-spaltige Textdatei aus zwei

Beitrag von uname » 22.05.2015 09:19:24

Also paste und nroff kannst du so kombinieren:

Code: Alles auswählen

paste <(nroff 1.txt) <(nroff 2.txt) | column -s $'\t' > drei.txt
Als Parameter für die Breite bei nroff hätte ich auch z.B. "-rLL=10n -rLT=10n" für eine Spaltenbreite von 10 erwartet. Funktioniert aber scheinbar nicht.

Benutzeravatar
Meillo
Moderator
Beiträge: 8818
Registriert: 21.06.2005 14:55:06
Wohnort: Balmora
Kontaktdaten:

Re: Eine 2-spaltige Textdatei aus zwei

Beitrag von Meillo » 22.05.2015 10:14:19

Das ist ja ganz mein Interessensgebiet. :-) Wie mir scheint, seid ist schon auf einem ganz guten Weg.

Die Register LL und LT haben nur auf das Macropaket ms Einfluss. Du musst also `nroff -ms -rLL=10n' verwenden. (LT ist nur fuer die Titellaenge da, das kannst du dir sparen, wenn du keine .tl Statements in der Eingabe hast.)

Ohne das ms-Paket setzt man die Zeilenlaenge mit der Anweisung `.ll 10n'. (Das muss eine Zeile fuer sich am Dateianfang sein, z.B. `{ echo ".ll 10n" ; cat 1.txt; } >eins.txt'.)


Noch zu beachten: Deine Eingaben fuer nroff duerfen keine Zeilen beinhalten, die mit Punkt oder Singlequote beginnen. Auch Backslashes im Text sind speziell.


Desweiteren koenntest du dir mal `pr -m' anschauen. Vielleicht laesst sich damit etwas machen. (Da werden noch eine paar Optionen mehr zu setzen sein.)
Use ed once in a while!

uname
Beiträge: 12075
Registriert: 03.06.2008 09:33:02

Re: Eine 2-spaltige Textdatei aus zwei

Beitrag von uname » 22.05.2015 10:29:07

Nun funktioniert es. Aber erst nachdem ich Debiangroff installiert habe. Zuvor war nur Debiangroff-base installiert.

Code: Alles auswählen

paste <(nroff -ms -rLL=60n 1.txt) <(nroff -ms -rLL=60n 2.txt) 
Nun müsste man noch die beiden im Beispiel 60 Zeichen-Blöcke etwas mehr auseinanderziehen. Sinnvoll erscheint ein rechter Rand am linken Dokument und ein linker Rand am rechten Dokument trotz jeweiligem Blocksatz. Kann nroff/groff das auch? Auchja. "pr" wollte im übrigen die Spalten bei einer Parallelausgabe nicht anpassen.

mullers

Re: Eine 2-spaltige Textdatei aus zwei

Beitrag von mullers » 22.05.2015 10:39:07

Meillo hat geschrieben:Das ist ja ganz mein Interessensgebiet. :-)
Ja, ich hatte schon einen awk-Hammer erwartet. :D

Also so funktioniert es genauso wie es soll, via cli und als Anweisung in der Datei.

`pr` hatte ich auch schon versucht, kam aber noch nix Tolles dabei raus. Aber so, mit nroff, ist sowieso erstmal das Beste.

Vielen Dank an alle!

Antworten