终端文件用a替换testA

时间:2016-06-21 17:02:07

标签: sed terminal

有没有办法使用终端将testThatMy转换为thatMy

这就是我现在所拥有的:

sed -i 's/test//g' MyJavaFile.java

唯一缺少的是将test之后的角色转换为小写。

由于某种原因,引用正则表达式变量似乎不起作用。

sed -i 's/test([A-Z]{1})/\1/g' MyJavaFile.java

1 个答案:

答案 0 :(得分:1)

您可以使用以下GNU sed命令:

sed -r 's/test([[:upper:]])([^[:space:]]*)/\L\1\2/g' file.java

对于就地编辑,您需要传递-i,但我会首先测试该命令。

模式说明:

  • -r启用扩展的POSIX正则表达式。
  • [[:upper:]]匹配大写字符
  • [^[:space:]]*匹配零个或多个非空格字符

替换说明:

  • \L将以下表达式转换为大写。 \1是内容优先捕获组。 \2是第二个捕获组的内容。