簡體   English   中英

如何從bash中的文本文件中提取句子?

[英]How to extract a sentence from a text file in bash?

我有一本書為文本格式。 我使用pdftotext從pdf轉換而成。 我想從文件中提取一個隨機句子。 請記住,句子在行尾可能會有一個返回字符。 所以我想找到一種方法來提醒下一行的句子。 所以我想問題是要開始句子的開頭。 通常是大寫字母。 “ ^ [AZ]”,然后將所有內容移至下一個'。 我已經嘗試過類似的東西

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

但這不起作用。 還嘗試使用IFS並分配“。” 作為分隔符。 但我正在將完整文件打印到屏幕上。 如果我可以每行打印完整的句子,這將很有幫助。

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

首先,在perl中一個非常粗糙的例子。

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

它既不考慮問題,感嘆號或引號,也不考慮Mr. Something問題,也不會用嵌入的換行符智能地格式化句子。

還有其他問題,但是如果選擇perl,這至少應該可以幫助您入門。

對於純bash,如果這是您所需要的,我將不得不多看一些。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM