代码之家  ›  专栏  ›  技术社区  ›  martin

Sed:替换组的更改情况

  •  8
  • martin  · 技术社区  · 16 年前

    如何使用sed Unix命令将匹配组的大小写从小写改为大写?

    马丁

    3 回复  |  直到 16 年前
        1
  •  16
  •   Howard Hong    15 年前

    将匹配的模式括在括号中,即:\(pattern\),然后使用\U\1作为替换文本。\1是匹配的模式,并强制大写。

    echo abcdef | sed -e 's/\(abc\)/\U\1/'
    
        2
  •  3
  •   tylerl    16 年前

    通过tr?

    y/// 转换以进行大小写更改。虽然不太方便,但很实用。如果转换太复杂,您可能需要考虑升级到perl。

        3
  •  1
  •   John Place    16 年前

    我知道这是一个sed问题,只是想指出有几种方法可以实现这个功能。awk是一个用于文本争用的工具,在某些情况下更易于使用。在我看来,这是其中一次:

    #!/bin/sh
    INFO="This is a test"
    ALLCAPS=`echo $INFO | awk '{print toupper($0)}'`
    echo $ALLCAPS
    

    收益率:这是一个测试