![查找文件中按顺序包含所有四个小写字母“inux”的所有单词](https://linux22.com/image/126699/%E6%9F%A5%E6%89%BE%E6%96%87%E4%BB%B6%E4%B8%AD%E6%8C%89%E9%A1%BA%E5%BA%8F%E5%8C%85%E5%90%AB%E6%89%80%E6%9C%89%E5%9B%9B%E4%B8%AA%E5%B0%8F%E5%86%99%E5%AD%97%E6%AF%8D%E2%80%9Cinux%E2%80%9D%E7%9A%84%E6%89%80%E6%9C%89%E5%8D%95%E8%AF%8D.png)
这四个字母应按字母顺序排列。例如,inux
和ianauax
位于输出中,但ixnux
和naiauax
不在输出中。
我只能用它grep
来完成这个任务。
我尝试过grep 'i\w*n\w*u\w*x\w*'
,但失败了,因为ixnux
它在输出中,但它不应该在输出中(ixnux
不是“i”、“n”、“u”、“x”按字母顺序排列的单词)
答案1
另一种grep
方法。
grep '[^nux]*i[^iux]*n[^inx]*u[^unu]*x' infile
答案2
grep
解决方案:
s="inux and ianauax are in the output, but ixnux and naiauax are not."
grep -o '\b[a-h0-9_]*i[a-l0-9_]*n[a-t0-9_]*u[a-y0-9_]*x\w*\b' <<<"$s"
输出:
inux
ianauax