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}
Si el script está en un archivo ejecutable llamado "estéreo", escriba
stereo file.in [column_width [page_width ["r l"]]]
column_width es un número; 25-45 funcionará, el valor predeterminado es 35.
page_width es un número, debe ser aproximadamente el doble del column_width, el valor predeterminado es 80
Para ver con los ojos cruzados, use "r l" como el 4to argumento. El valor predeterminado es "l r", que se configura para visualización paralela.
EDITAR: reescribió para dividir el archivo en una palabra por línea, luego vuelva a armar al final. Nota: se reserva el signo "=" para su propio uso. Cualquier signo "=" en el archivo de entrada se convertirá en blanco.
EDITAR: Si su mensaje tiene signos "=" en él, puede elegir otro símbolo para que lo use el script, proporcionándolo como el 5º parámetro.
Ejemplo
Entrada: vegetarianismo.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.
Resultado
./stereo vegetarianism.txt 32 72 "l r": | expandir (usando los dos puntos como su símbolo interno de trabajo)
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" | expandir
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!
El "| expandir" no es necesario, pero al cambiar la salida por 4 lugares, las TAB se manejan incorrectamente. Se podría poner en el script a un costo de 7 bytes.
Variación de ImageMagick
Reemplazar la última línea con un comando ImageMagick de texto a imagen:
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:
En este caso, la "r" y la "l" para visión cruzada versus visión paralela son argumentos separados:
./im_stereo vegetarianismo.txt 40 80 lr =

(fuente: simplesystems.org )
EDITAR 3: Variación de ImageMagick añadida.