Linux正则表达式命令

时间:2019-12-01 22:04:31

标签: linux

您将给出什么命令来列出所有正好5个字符长且以大写或小写的元音(“ a”,“ e”,“ i”,“ o”,“ u”或“ y”),在中间位置使用小写字母“ t”,并以小写字母“ s”结尾?

其余字母可以是英语单词中出现的任何字符,包括但不限于大写和小写字母,数字,连字符等。

2 个答案:

答案 0 :(得分:1)

您几乎拥有它!

grep ^[AaEeIiOoUuYy].t.s$ /usr/share/dict/words 

答案 1 :(得分:0)

由于我更喜欢​​复杂的管道而不是复杂的正则表达式,因此,我采取以下做法:

cat /usr/share/dict/words \
    | grep -E -x ".{5}" \
    | grep '^[aeiouyAEIOUY]' \
    | grep '..t.s'

(为便于阅读,添加了{Useless use of cat)。

在我的Ubuntu上,它产生以下输出:

Art's
Estes
Oates
Oct's
Yates
act's
altos
ant's
antes
antis
art's
autos
iotas
oat's
oaths
out's

(您可以将.{5}替换为\w{5}或将[a-zA-Z0-9-]{5}替换为您喜欢的任何内容。

我实际上已经写了一个类似于chea的脚本。我的意思是,请帮我填字游戏。