大写匹配模式的第一个字母

时间:2015-05-13 15:34:09

标签: linux bash sed

我有几十个包含以下文字的文件:

request {
      Request {        
        input("testing")
      }
}

我想使用sed来大写输入中任何文本的第一个字母。例如,我想测试是测试。我尝试了以下命令来大写所有的开头,但我怎么才能将它应用于输入?

sed -e "s/\b\(.\)/\u\1/g"

1 个答案:

答案 0 :(得分:1)

怎么样

sed 's/input("\(.\)/input("\u\1/'

<强>测试

$ echo -e 'request {
      Request {        
        input("testing")
      }
}' | sed 's/input("\(.\)/input("\u\1/'
# Outputs
# request {
#      Request {        
#        input("Testing")
#      }
#}

它的作用是什么?

  • /input("\(.\)匹配input("后跟第一个字符(示例t。匹配.的字符在\1中捕获

  • input("\u\1替换字符串。 input("被自己取代。 \u\1\1中捕获的字符转换为大写字母。