Как извлечь предложение из текстового файла в Bash?
У меня есть книга в текстовом формате. который я конвертировал из pdf используя pdftotext. и я хочу извлечь случайное предложение из файла. имейте в виду, что предложение может иметь возвращаемый символ в конце строки. поэтому я хочу найти способ получить напоминание о предложении в следующей строке. Поэтому я думаю, что проблема будет в том, чтобы получить начало предложения. Обычно заглавная буква. "^[AZ]", а затем получить все до следующего ". Я пробовал такие вещи, как
grep "^[A-Z].*.$" text.txt
но это не работает Также попытался использовать IFS и присвоить '.' в качестве разделителя. но я получаю полный файл распечатан на экран. было бы полезно, если бы я мог напечатать полное предложение по одному в строке.
IFS=.
while read sentence;
do
echo $sentence
done < the-prince.txt
1 ответ
Во-первых, очень грубый пример в Perl.
#!/bin/perl
$/='. ';
while (<>) { push(@_, $_) if /^[A-Z]/; }
print $_[rand @_], "\n";
Он не учитывает вопросы, восклицания или цитаты или Mr. Something
проблема, и при этом это не будет разумно форматировать предложения со встроенными символами новой строки.
Существуют и другие проблемы, но, по крайней мере, это должно помочь вам начать работу, если Perl является опцией.
Для чистого bash, если это то, что вам нужно, мне придется поискать немного больше.