【发布时间】:2014-12-23 10:31:41
【问题描述】:
这是我第一次在这里发帖,请多多包涵。
我收到了一个 bash 作业,但我的教授完全没有帮助,他的笔记也是如此。
我们的任务是从文件中过滤和打印回文。在这种情况下,目录是:
/usr/share/dict/words
单词长度范围从 3 到 45,并且应该只过滤小写字母(给定的字典有字符和大写字母,以及小写字母)。即“-dkas-das”,所以像“q-evvavve-q”这样的东西可能算作回文,但我不应该得到正确的结果。
无论如何,我可以让它过滤掉 x 数量的单词并返回(虽然不是只过滤小写字母)。
grep "^...$" /usr/share/dict/words |
grep "\(.\).\1"
我可以将后续行用于 5 个字母的单词和 7 个等等:
grep "^.....$" /usr/share/dict/words |
grep "\(.\)\(.\).\2\1"
但是教授不希望这样。我们应该使用循环。我明白了这个概念,但我不知道语法,就像我说的那样,这些注释非常无用。
我尝试设置变量 x=... 和 y=.. 并在 while 循环中设置 x=$x$y 但这不起作用(语法错误),x+=.. 也没有/p>
感谢任何帮助。甚至过滤掉我的非小写字母。
谢谢!
编辑:
如果您要提供解决方案或解决方案的提示,则首选最简单的方法。 最好使用 2 个 grep 语句和一个循环。
再次感谢。
【问题讨论】:
标签: bash loops grep palindrome