Vom einfachen Programm zum fertigen Debian-Paket, Fragen rund um Programmiersprachen, Scripting und Lizenzierung.
-
Richard
- Beiträge: 650
- Registriert: 11.10.2012 14:18:37
- Lizenz eigener Beiträge: GNU General Public License
Beitrag
von Richard » 29.10.2021 23:35:23
Hallo,
ich habe ein Script mit teilweise recht langen Ausgaben von "echo" und hab die bisher mit
auf 100 Zeichen begrenzt um zweizeilige Ausgaben zu vermeiden. Geht das auch eleganter, indem man echo zu einzeiligen Ausgaben zwingt, aber abhängig von der Breite des Terminalfensters oder müsste das im Terminal selbst eingestellt werden?
-
Meillo
- Moderator
- Beiträge: 9224
- Registriert: 21.06.2005 14:55:06
- Wohnort: Balmora
-
Kontaktdaten:
Beitrag
von Meillo » 29.10.2021 23:37:41
Use ed once in a while!
-
Richard
- Beiträge: 650
- Registriert: 11.10.2012 14:18:37
- Lizenz eigener Beiträge: GNU General Public License
Beitrag
von Richard » 02.11.2021 12:08:58
Das geht grds., aber da wird deutlich zu früh geschnitten. Da wird schätzungsweise 80% des Platzes genutzt. Woher bezieht tput denn die Info über die "cols"? Das Ziel war den Platz des Terminalfensters voll auszunutzen, abhängig von der Fensterbreite. Das heißt: Fenster über die ganze Breite heißt mehr wird angezeigt als bei Fenster über 50% der Breite.
Auch werden nicht alle Zeilen an der gleichen Stelle geschnitten. Manchmal sind es 3-5 Stellen mehr oder weniger.
-
Meillo
- Moderator
- Beiträge: 9224
- Registriert: 21.06.2005 14:55:06
- Wohnort: Balmora
-
Kontaktdaten:
Beitrag
von Meillo » 02.11.2021 12:44:43
Vermutlich liegt das daran, dass mit Bytes und nicht mit Zeichen gerechnet wird. Wenn also mehr Umlaute und so enthalten sind, wird die Zeile kuerzer sein.
Pipe mal statt durch cut durch awk, vielleicht unterstuetzt das UTF-8:
Use ed once in a while!
-
Richard
- Beiträge: 650
- Registriert: 11.10.2012 14:18:37
- Lizenz eigener Beiträge: GNU General Public License
Beitrag
von Richard » 02.11.2021 16:01:46
Ich verwende DejaVu Sans Mono Book. Da werden zumindest alle Zeilen genau untereinander dargestellt. Das heißt der 4. Buchstabe eines Wortes steht immer genau unter dem 4. BS der Zeile darüber und darunter.
Auch mit awk klappt das nicht. Auch hier passieren komische Sachen, dass manche Ausgaben länger sind als andere, auch wenn keine Umlaute enthalten sind. Auch Ausgaben mit je einem Umlaut sind teilweise unterschiedlich lang. Ich lass das jetzt bei 'cut' und fertig.
-
Meillo
- Moderator
- Beiträge: 9224
- Registriert: 21.06.2005 14:55:06
- Wohnort: Balmora
-
Kontaktdaten:
Beitrag
von Meillo » 02.11.2021 16:15:11
Poste doch mal konkrete Ausgaben (ggf. pseudonymisiert), dann koennen wir dir dieses Problem auch noch loesen. Ohne konkrete Ausgaben ist es halt nur Raterei von unserer Seite.
Use ed once in a while!
-
Richard
- Beiträge: 650
- Registriert: 11.10.2012 14:18:37
- Lizenz eigener Beiträge: GNU General Public License
Beitrag
von Richard » 04.11.2021 12:13:08
Das Script prüft Dateien in bestimmten Ordner. Hab ich mir mal erstellt, da ich nach einem Backup-Restore feststellen musste, dass einige Hörbuchdateien und eBooks beschädigt waren.
Es wird im Terminal lediglich ausgegeben, dass Datei Nummer X von insgesamt Y, dann der Dateiname und der Ordner in dem sie steckt.
Code: Alles auswählen
echo -e "$count" von "$count_total" gelesen - $(echo "$filename" in "$dirname" | cut -c -130)