Textdatei mit Formatierungen ausgeben
-
Hallo,
ich würde gerne ein kleines Shellscript schreiben,
das mir eine Textdatei in ein aus '*' gezeichneten Rahmen ausgibt.
Also in etwa so:****************************************** *Inhalt von Textdatei * ******************************************
Der rechte Rand sollte immer bei x Zeichen liegen.
Ich sehe vier Grundansätze, was ich tue:
1. die 'cat' ausgabe nach 'sed' pipen
(allerdings bekomme damit wohl den rechten Rand nicht ausgerichtet.2. mich in groff einarbeiten und das als Tabelle
erstellen3. Ein C Programm schreiben.
(geht fix, aber würde mich trotzdem lieber auf ein Script beschränken)4. Was andres, was ihr mir jetzt sagt
-
#!/bin/sh ROWS=`stty -a|head -n 1|cut -d ';' -f 2|sed 's,rows,,'` COLS=`stty -a|head -n 1|cut -d ';' -f 3|sed 's,columns,,'` SEQ=jot HR="\033[0;32m" for f in `$SEQ $COLS`; do HR=$HR\*; done HR=$HR"\033[0;0m\n" printf "$HR" while read line; do line=`echo "$line" | tr '\t' ' '` cnt=$(($COLS - `echo "$line"|wc -m` - 2)) #echo $cnt printf "\033[0;32m\*\033[0;0m %s%${cnt}s\033[0;32m\*\033[0;0m\n" "$line" ""; done < $1; printf "$HR"
ROWS/COLS: dieser Weg sollte auf FreeBSD(dort hab ich es gebaut) und Linux genauso funktionieren
SEQ: auf FreeBSD und anderen BSDs normalerweise jot, auf Linux und vermutlich vielen SysV systemen seq.ANSI Escape uebersicht:
http://www.bluesock.org/~willg/dev/ansi.html--
Anreas
-
Oh, wow.
Hätte niemals ein komplettes Script erwartetSind viele neue Tricks bei, dankeschön
und schönes Wochende.