2011-12-11 86 views
1

我想搜索放置在文档中的所有首字母缩写词,以便我可以更正它们的格式。我认为我可以假定所有首字母缩略词都是包含至少2个大写字母的单词(例如:“EU”),因为我从来没有见过一个单词的首字母缩略词或只包含1个大写字母的缩写词,但有时他们有一个对他们或另一个小字母中的“of”小“o”。我怎样才能打印出一个列出所有可能匹配的列表?列出包含多个大写字母的所有单词

回答

1

这是否会为你工作:

​​3210

翻译:

  • 与换行符替换空白的所有运行在$your_file。这将把每个单词放在自己的路线上。
  • 排序文件并删除重复项。
  • 查找包含由零个或多个字符分隔的两个大写字母的所有行。
0

单程使用perl

内容的infile

One T 
Two T 
THREE 
Four 
Five SIX 

运行perl命令:

perl -ne 'printf qq[%s\n], $1 while /\b([[:upper:]]{2,})\b/g' infile 

结果:

THREE 
SIX 
+1

请问这种打印线包含'ToE'(如在“一切理论”中)? –

+1

不是我的,但还有其他答案。 – Birei

2

这可能会为你工作:

tr -s '[:space:]' '\n' <input.txt | sed '/\<[[:upper:]]\{2,\}\>/!d' | sort -u 
2

-o的grep的选项可帮助您:

grep -o '\b[[:alpha:]]*[[:upper:]][[:alpha:]]*[[:upper:]][[:alpha:]]*' 
2

几乎只击:

for word in $(cat file.txt) ; do 
    if [[ $word =~ [[:upper:]].*[[:upper:]] ]] ; then # at least 2 capital letters 
    echo "${word//[^[:alpha:]]/}"     # remove non-alphabetic characters 
    fi 
done 
相关问题