Bash, sed: 228 223 197 (242 - 70) = 172
c=${5:-=};R=$c;L=;for f in r l;do
e="sed -e ";$e"$ d;s/$\| */ \n/g" $1>m
o=1;for w in `$e"$ p;d" $1`;do
$e"$o,/^$w /s/^$w /$L$w$R /" m>n;o="/$c/"
cp n m;done;tr -d \\n<n|fold -sw${2:-35}|$e"s/$c/ /g">$f
L=$c;R=;done;pr -tmw${3:-80} ${4:-l r}
Se lo script si trova in un file eseguibile chiamato "stereo", digitare
stereo file.in [column_width [page_width ["r l"]]]
column_width è un numero; 25-45 funzionerà, il valore predefinito è 35.
page_width è un numero, dovrebbe essere circa il doppio di column_width, il valore predefinito è 80
Per la visione incrociata, utilizzare "r l" come 4 ° argomento. L'impostazione predefinita è "l r" che imposta per la visualizzazione parallela.
EDIT: riscritto per dividere il file in una parola per riga, quindi riassemblare alla fine. Nota: riserva il segno "=" per proprio uso. Qualsiasi segno "=" nel file di input diventerà vuoto.
EDIT: se il tuo messaggio ha "=" segni in esso, puoi scegliere un altro simbolo per lo script da utilizzare, fornendolo come 5 ° parametro.
Esempio
Input: vegetarianism.txt:
I invented vegetarianism. It is a diet involving no meat, just
vegetables. It is also common in cows - they are awesome.
vegetarianism. is awesome.
Risultato
./stereo vegetarianism.txt 32 72 "l r": | espandi (usando i due punti per il suo simbolo di funzionamento interno)
I invented vegetarianism. It I invented vegetarianism. It
is a diet involving no meat, is a diet involving no meat,
just vegetables. It is also just vegetables. It is also
common in cows - they are common in cows - they are
awesome. awesome.
./stereo washington.txt 35 75 "l r" | espandi
In a little district west of In a little district west of
Washington Square the streets Washington Square the streets
have run crazy and broken have run crazy and broken
themselves into small strips themselves into small strips
called 'places'. These 'places' called 'places'. These 'places'
make strange angles and curves. make strange angles and curves.
One Street crosses itself a time One Street crosses itself a time
or two. An artist once discovered or two. An artist once discovered
a valuable possibility in this a valuable possibility in this
street. Suppose a collector with a street. Suppose a collector with a
bill for paints, paper and canvas bill for paints, paper and canvas
should, in traversing this route, should, in traversing this route,
suddenly meet himself coming suddenly meet himself coming
back, without a cent having been back, without a cent having been
paid on account! paid on account!
"| Espandi" non è necessario ma quando si sposta l'output di 4 posizioni i TAB vengono gestiti in modo errato. Potrebbe essere inserito nello script al costo di 7 byte.
Variazione ImageMagick
Sostituzione dell'ultima riga con un comando ImageMagick da testo a immagine:
c=${6:-=};R=$c;L=;for f in r l;do
e="sed -e ";$e"$ d;s/$\| */ \n/g" $1>m
o=1;for w in `$e"$ p;d" $1`;do
$e"$o,/^$w /s/^$w /$L$w$R /" m>n;o="/$c/"
cp n m;done;tr -d \\n<n|fold -sw${2:-35}|$e"s/$c/ /g">$f
L=$c;R=;done;
convert -border 10x30 label:@${4:-l} label:@${5:-r} +append show:
In questo, la "r" e la "l" per la visione incrociata rispetto alla visione parallela sono argomenti separati:
./im_stereo vegetarianism.txt 40 80 lr =

(fonte: simplesystems.org )
EDIT 3: aggiunta la variazione di ImageMagick.