在这些压力的时候,一个办法来转移自己从黑暗是玩文字游戏。有了这个想通了这一点,我自己的挑战,以确定单词,拼写倒退,仍然会话。
相反,做一个简单的谷歌搜索作弊的,我被骗了用我的Linux命令技巧。因此,在这篇文章中,我们将看看如何Linux的命令和资源可以用来识别这样的字眼。
定义搜索
在我们开始之前在Linux搜索技术,我要指出的是什么,我一直在寻找的不只是回文 - 也就是说这样的阅读从左至右相同,因为他们做从右到左的“公民”和“神化”。相反,我也一直在寻找像“奖励”和“无咖啡因”是转成不同的单词 - 在这种情况下,“抽屉”和“面临” - 当一个向后读取它们。
为了记录在案,许多方面,人们已经用于定义是可逆的以这种方式是“anadromes”在英语中最长已知anadromes是“强调”和“甜品”的字眼之一(我的小项目待定)。我还包括回文词。
使用的话文件
对于我的话资源,我使用过的Linux话文件。有可能的/ usr /字典/字要么的/ usr /共享/字典/字您的系统。我使用这个职位的系统上的文件的话有超过10万字。您可以使用厕所命令执行计数。
$ WC -l在/ usr /共享/字典/单词102403在/ usr /共享/字典/单词
一词语文件的特殊性的是,它包含每个组开始具有相同字母(用于初始帽和初始小写字母字)字之间的单字母分隔线。在这里,作为例子,都是在开始乙和b部分:
B B B的咩BBB BAA的BBB的baaed宝马baaing宝马的巴斯
这句话文件还包括了大量的专有名称,缩略语。正确的名称(如“阿达”)将不能用作anadromes工作,因为名称一般不符合“单词”,并因为逆转会利用最后的后者(如“ADA”)。这句话文件还包含文字的末(所有格和收缩,如“岛的”和“不是”)。因为我不指望这些条目的话,我制作我的技术,以避免考虑他们。
此外,唯一合法的单字母词是“a”和“I”。由于这些应该朝总算,我在一些声母步骤中添加这些我的话逆转名单贴现的单个字母部分的标题,同时通过词文件循环,从而使加工更加容易的剩余部分。
虽然在所有帽和所有格省略单字母条目的话,那我放在一起的脚本来完成所有剩余的话找到可逆的话运行,反转他们每个人再回头看的话文件,看看是否反转字也是在文件中。
启动脚本
在脚本的开始,我设定起始计为2,显示词语“一”和“I”:
#!/斌/庆典#开始于2 “a” 和 “I”(单个字母下面避免)数= 2回声回声我
通过字文件循环
然后,我通过话文件运行。只选择了符合的话(没有上限,没有撇号等),最简单的方法是使用grep表达grep的-E '^ [A-Z] {2,23} * $'。这将选择从2到23个字母全部小写的话。我曾单独确定的字样文件中最长的单词(脑电图的)有23个字母。
在`猫的/ usr /共享/字典/字字|grep的-E '^ [A-Z] {2,23} * $'`
倒车每个字
我用转命令扭转每个字for循环产生的。如果我这样做手工,反转可能是这样的:
$回声鱼子酱|转raivac
下面是该脚本的逆转:
revword =`回声$字|rev`
然后我寻找这个词在其相反的形式,看它是否还在的话文件存在。这grep命令显示,如果它发现这个词。如果grep的没有找到的话,不产生输出。^和第二$符号确保它只有找到完整的单词。
grep的^ $ revword $在/ usr /共享/字典/单词
计数出土文物
如果grep的命令成功(即,如果发现字的反转),我们知道逆转是一个字也和它添加到我们的计数。注意$?表示由所产生的退出状态grep的指挥0表明没有出现错误(即,这个词被发现)。
如果[$?-eq 0];然后((计数=计数+ 1))连接的
然后我最终通过的话文件的循环,并显示anadromes的计数。词是回文(如“公民”),将被计算一次。字不属于回文将已经计数两次(一次用于每个字)。作为结果,最终计可能是奇数还是偶数。
回声$算发现可逆的话
计算百分比
为了满足我的好奇心,我还可以在脚本的末尾添加一些命令来计算的话文件有资格作为anadromes条目的百分比。
#确定的百分比的话=`WC -l在/ usr /共享/字典/ words`百分比=`回声$ $算的话|AWK '{打印$ 1 / $ 2 * 100}'`回波-n “百分比:” 回声$百分比%
在我的案件的比例竟然是0.399%。这比半个百分点少一点 - 小于每200还有一个字,我感到惊讶的是有这么多。
剧本
在整体上可脚本如下所示,包括一些意见,以增加其可读性。在这个版本的剧本,我把所有的位于anadromes成一个文件。
#!/斌/庆典输出=“anadromes”#1开始为“一”(下避免单字母的条目)数= 2回声> $输出回波I >> $#输出查找单词,逆转时,仍在`猫的/ usr /共享/字典/字字字|grep的-E '^ [A-Z] {2,23} * $'`做revword =`回声$字|rev` grep的^ $ revword $在/ usr /共享/字典/词>> $输出,如果[$?-eq 0];然后((计数=计数+ 1))进行连接#显示字计数回波$计数可逆词语发现#确定百分比词语=`WC -l的/ usr /共享/字典/ words`百分比=`回声$ $计数话|AWK '{打印$ 1 / $ 2 * 100}'`回波-n “百分比:” 回声$百分比%
我是怎么看的?
如果你运行该脚本如上图所示,你可以使用柱命令来获得它已经确定了anadromes的格式良好的上市。下面是我发现的开始:
$列anadromes一个食人魔暗淡偏红润湿我吃苗条看守织毛衣大号前夕牛仔鹿鲁特拉格现场微量阅读盆公顷诸侯割据妈妈FER点啊哈母羊注定是指部分拉贾眼房啤酒疣マ无咖啡因嗯旦甜品时代裁判胶eviler端口血清高尔夫妈妈定时器体育...
脚本发现的字样文件409个anadromes。
包起来
一个简单的挑战竟然是那个行使我的一些Linux技能的脚本。这些措施包括:
- 通过字文件循环
- 制作一个grep的命令只有我想要的东西,将捕捉
- (第一最后一个字母),倒车每个单词
- 统计发现anadromes
- 计算的话符合我的条件的百分比
我还没有确定什么明天的挑战将是,但解决问题的Linux工具是一个非常令人满意的脑力锻炼!