Баш, седь: 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}
Если сценарий находится в исполняемом файле с именем «стерео», введите
stereo file.in [column_width [page_width ["r l"]]]
column_width - это число; 25-45 будет работать, по умолчанию 35.
page_width это число, должно быть примерно в два раза больше column_width, по умолчанию 80
Для просмотра с косыми глазами используйте «r l» в качестве 4-го аргумента. По умолчанию установлено значение «l r» для параллельного просмотра.
РЕДАКТИРОВАТЬ: переписать, чтобы разделить файл на одно слово в строке, а затем собрать в конце. Примечание: резервирует знак "=" для собственного использования. Любые знаки «=» во входном файле станут пробелами.
РЕДАКТИРОВАТЬ: Если в вашем сообщении есть знаки «=», вы можете выбрать другой символ для сценария, который будет использоваться, указав его в качестве 5-го параметра.
пример
Входные данные: 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.
Результат
./stereo vegetarianism.txt 32 72 "l r": | развернуть (используя двоеточие для внутреннего рабочего символа)
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" | развернуть
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!
«| Раскрыть» не нужно, но при смещении вывода на 4 позиции TAB обрабатываются неправильно. Это может быть вставлено в скрипт стоимостью 7 байт.
Вариация ImageMagick
Замена последней строки командой ImageMagick с преобразованием текста в изображение:
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:
В этом случае «r» и «l» для просмотра в параллельном или параллельном режиме являются отдельными аргументами:
./im_stereo vegetarianism.txt 40 80 лр =

(источник: simplesystems.org )
РЕДАКТИРОВАТЬ 3: Добавлена вариация ImageMagick.