Как извлечь предложение из текстового файла в Bash? - PullRequest
0 голосов
/ 19 февраля 2019

У меня есть книга в текстовом формате.который я конвертировал из pdf используя pdftotext.и я хочу извлечь случайное предложение из файла.имейте в виду, что предложение может иметь возвращаемый символ в конце строки.поэтому я хочу найти способ получить напоминание о предложении в следующей строке.Поэтому я думаю, что проблема будет в том, чтобы получить начало предложения.Обычно заглавная буква.«^ [AZ]», а затем получить все до следующего ».Я пробовал что-то вроде

grep "^[A-Z].*.$" text.txt

, но это не работает.Также попытался использовать IFS и присвоить '.'в качестве разделителя.но я получаю полный файл распечатан на экран.будет полезно, если я смогу напечатать полное предложение по одному на строку.

IFS=.
while read sentence; 
do 
    echo $sentence
done < the-prince.txt

1 Ответ

0 голосов
/ 19 февраля 2019

Во-первых, очень грубый пример в perl.

#!/bin/perl
$/='. ';
while (<>) { push(@_, $_) if /^[A-Z]/; }
print $_[rand @_], "\n";

Он не учитывает вопросы, восклицания или цитаты, или проблему Mr. Something, и не будет разумно форматировать предложения со встроенными символами новой строки.

Существуют и другие проблемы, но, по крайней мере, это должно помочь вам начать, если perl - опция.

Для чистого bash, если это то, что вам нужно, мне придется поискать немного больше.

...