我需要使用shell脚本解决难题.我试图将grep与rev组合并将输出保存到临时文本文件中,但仍然不知道如何完全解决它.
这就是要解决的难题:
j s e t f la l s f e lg a a n p le p f d p kr e g e l af n e t e n
包含要使用的词表的文件位于http://pastebin.com/DP4mFZAr
我知道如何告诉grep在哪里找到匹配的模式作为使用$grep -Ff wordList puzzle从文本文件中提取的固定字符串
如何使用$rev puzzle搜索镜像词grep -Ff wordList拼图,因此处理水平线,但我如何处理垂直字?最佳答案我正在覆盖水平和垂直匹配.主要思想是删除空格,然后将grep -f与给定的单词列表一起使用,存储在单词文件中.
使用grep -f,结果显示在行内.如果您只想查看匹配的测试,请使用grep -of.
水平匹配
$cat puzzle | tr -d ' ' | grep -f wordsalsfelgaanplregelafneten$cat puzzle | tr -d ' ' | grep -of wordsalsgaanregeleten
垂直匹配
为此,我们首先必须转置文件的内容.为此,我使用我用于another answer of mine的内容:
transpose () { awk '{for (i=1; i<=NF; i++) a[i,NR]=$i; max=(max
让我们看看:
$cat puzzle | transpose | tr -d ' ' | grep -f wordsjagerfslapenesafgetfndetlllkan$cat puzzle | transpose | tr -d ' ' | grep -of wordsjagerslapenafgedekan
然后,您可以使用rev(如您在问题中所建议的)镜像词.对于垂直镜像的单词,tac也很有趣.
对角线匹配
对于对角线匹配,我认为一种有趣的方法是将每一条线向左/右移动一点点.这条路,
e x x x xx g x x xx x g x x
可以变成
e x x x xg x x xg x x
你可以使用垂直/水平方法.
为此,您可以使用Using variables in printf format中描述的printf:
$cat ae x x x xx g x x xx x g x x$awk -v c=20 '{printf "%*s\n",c,; c-=2}' a e x x x x x g x x x x x g x x
总结 以上是内存溢出为你收集整理的正则表达式 – 使用grep等bash工具解决难题全部内容,希望文章能够帮你解决正则表达式 – 使用grep等bash工具解决难题所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)