我想搜索文档中放置的所有首字母缩略词,以便我可以更正其格式。我想我可以假设所有首字母缩略词都是包含至少2个大写字母的单词(例如:“EU”),因为我从未见过只包含1个大写字母的单字缩写词或首字母缩略词,但有时它们有一个小“o”代表“of”或其他小写字母。如何打印出一次显示所有可能匹配的列表?
答案 0 :(得分:2)
这可能对您有用:
tr -s '[:space:]' '\n' <input.txt | sed '/\<[[:upper:]]\{2,\}\>/!d' | sort -u
答案 1 :(得分:2)
grep的-o
选项可以帮助您:
grep -o '\b[[:alpha:]]*[[:upper:]][[:alpha:]]*[[:upper:]][[:alpha:]]*'
答案 2 :(得分:2)
几乎只有Bash:
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
答案 3 :(得分:1)
这对你有用吗?
sed 's/[[:space:]]\+/\n/g' $your_file | sort -u | egrep '[[:upper:]].*[[:upper:]]'
翻译:
$your_file
中的所有空格。这将使每个单词都在自己的行上。答案 4 :(得分: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