考虑一个文本文件与内容:perl可以用自己的替代词一次代替多个关键词吗?
apple apple pear plum apple cherry pear apple
cherry plum plum pear apple cherry pear pear apple plum
,并考虑Perl的一行代码:
perl -pe "s/apple/green/g and s/pear/yellow/g and s/plum/blue/g and s/cherry/red/g" < fruits.txt
这将替换所有的水果,它的颜色。
现在,这可以以某种方式在单个s /// g中完成,而不是上述四个?
我也关心水果单词的顺序。
如果我的示例不包含“苹果”,则其他替代品都不会完成。 我该如何解决这个问题?
请注意:我想保留解决方案为一行。
因此,定义哈希,读取文件和其他需要许多perl代码行的解决方案不会带我前进。
这更多的是好奇心,而不是项目依赖的生死攸关的问题。 现在只是困扰了我一段时间,并认为一个更有经验的perl用户可以帮助解决问题,或者让我摆脱自己的苦难,直接告诉我,这不能以perl的方式完成我想要的方式。
我觉得原来的更为清晰可辨,但要注意的是,行为比建议的解决方案,如果任何模式或字符串的是其他模式或字符串子不同(连续换人vs一次传球) –