Как можно сохранить текст после оптического распознавания символов при преобразовании между файлами djvu и pdf?

С ksh93илиmksh:

{ read -rd=; IFS=: read -rA filetypes; } <file

Команда в {...;}выше сначала будет считывать до первого символа =во входных данных включительно. Эта часть ввода будет храниться в переменной REPLYи в дальнейшем ни для чего не использоваться. Затем код переходит оттуда и считывает строки с разделителями:-в массив filetypes.

Параметр -dдля readв kshзаставляет команду читаться до заданного символа (, а не до символа новой строки ). Опция -Aкоманды позволяет считывать ее в индексированный массив, а не в строковую переменную. При использовании -Aзначение переменной IFSиспользуется для разделения элементов массива на входе.

Тестирование:

$ cat file
FILETYPE=A:B:C:D
$ { read -rd=; IFS=: read -rA filetypes; } <file
$ printf '"%s"\n' "${filetypes[@]}"
"A"
"B"
"C"
"D"

Изменение -Aна -aзаставит код работать в bash.


Если файл содержит другие строки, которые вы, возможно, не хотите читать, то с помощью ksh93используйте

grep '^FILETYPE=' file | { read -rd=; IFS=: read -rA filetypes; }

Обратите внимание, что это не работает ни в mksh, ни в bash, если не установлена ​​опция оболочки lastpipeи код выполняется в не -интерактивной оболочке (, т. е. в сценарии )с заданием -управление отключено (и -Aизменено на -a, как указано выше ).

5
24.05.2014, 08:48
0 ответов

Теги

Похожие вопросы