【问题标题】:Convert vowels from upper case to lower case and lower case to upper case using sed使用 sed 将元音从大写转换为小写,将小写转换为大写
【发布时间】:2011-07-21 03:24:48
【问题描述】:

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

【问题讨论】:

    标签: linux string sed


    【解决方案1】:

    使用sed的y命令进行音译。

    sed 'y/aeiouAEIOU/AEIOUaeiou/'
    

    概念证明

    $ echo "This Is a lOng String" | sed 'y/aeiouAEIOU/AEIOUaeiou/'
    ThIs is A long StrIng
    

    【讨论】:

      【解决方案2】:

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

      $ tr 'aeiouAEIOU' 'AEIOUaeiou'

      运行速度几乎比等效的 sed 命令快 6 倍。 (并将输出重定向到比特桶,tr 快 135 倍,输出到管道 tr 快 38.5 倍。当然,这些是单一测试基准,根本不准确,但 tr 是正确的工具。)

      【讨论】:

        【解决方案3】:
        sed 'y/aeiouAEIOU/AEIOUaeiou/'
        

        【讨论】:

          【解决方案4】:

          实现这一点,从下到上:

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

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 2022-01-03
            • 2022-01-24
            • 1970-01-01
            • 2014-11-07
            • 2011-10-29
            • 2015-11-28
            • 2016-02-24
            相关资源
            最近更新 更多