使用sed将元音从大写字母转换为小写字母,将小写字母转换为大写字母

时间:2011-03-23 08:58:15

标签: linux string sed

我需要创建一个脚本,使用sed替换带有大写元音的小写元音和带有情人元音的大写元音。 例如,如果我有字符串“This Is a lOng String”,结果应为“ThIs is a Long StrIng”。 我尝试了类似sed 's/a/A/g ; s/A/a/g'之类的内容,但这不会改变a-> A和A-> a它只会替换小写的.. 我知道有类似的问题,但我无法让它工作,所以我想我会问你..

4 个答案:

答案 0 :(得分:5)

使用sed的{​​{1}}命令进行音译。

y

概念证明

sed 'y/aeiouAEIOU/AEIOUaeiou/'

答案 1 :(得分:3)

为什么限制自己使用sed?我的盒子快速测试了:

$ tr 'aeiouAEIOU' 'AEIOUaeiou'

运行速度比同等的sed命令快6倍。 (并且将输出重定向到位桶,tr快135倍,输出到管道的速度快了38.5倍。当然,这些是单个测试基准并且完全不准确,但tr是正确的工具。)< / p>

答案 2 :(得分:2)

sed 'y/aeiouAEIOU/AEIOUaeiou/'

答案 3 :(得分:1)

实现这一点,从低到高:

sed 'y/aeiou/AEIOU/' inputfile.txt > outputfile.txt