Читать pdf на выходе терминала 2 столбца в один - PullRequest
0 голосов
/ 09 июля 2020

В последнее время мне нравится читать pdf меньше команд. less file.pdf

Хотел бы прочитать книгу в формате pdf, состоящую из двух столбцов. Должна быть команда для вывода в один столбец, верно?

Примечание: для каждой страницы меняется ^L

Что-то вроде трубы с awk? Не возражал бы использовать vi или любую другую команду.

Пример формата

                                                                9
^LAgradecimientos                                                                                                         Agradecimientos

maciones de la psiquiatría y la ciencia tradicional de Occi-           do al poder contar con la amistad personal de muchos de los
dente.                                                                 pioneros de este nuevo abordaje psicológico. Estas personas
   También debo agradecer el aliento y el apoyo de varios físi-        tan especiales han sido durante muchos años una fuente de ins-

1 Ответ

1 голос
/ 09 июля 2020

Вот начало:

$ cat tst.sh
#!/usr/bin/env bash

awk -v ff='\f' -F'\n' '
    s = index($0,ff) {
        prt()
        indent = s - 1
        width  = length($0) - indent
        midway = int(width / 2)
        next
    }
    indent { sub("^ {"indent"}","") }
    /[^[:space:]]/ {
        left  = left substr($0,1,midway) ORS
        right = right substr($0,midway+indent) ORS
    }
    END { prt() }

    function prt() {
        printf "%s", left
        printf "%s", right

        left = right = ""
    }
' "${@:--}"

.

$ ./tst.sh file

                                                                    9
maciones de la psiquiatría y la ciencia tradicional de Occi-
dente.
   También debo agradecer el aliento y el apoyo de varios físi-
do al poder contar con la amistad personal de muchos de los
pioneros de este nuevo abordaje psicológico. Estas personas
tan especiales han sido durante muchos años una fuente de ins-

Попытайтесь улучшить это, чтобы полностью работать на вас, а затем разместите новый вопрос, если вы не можете и имеете любые конкретные c вопросы.

...