有没有办法使用终端将testThatMy
转换为thatMy
?
这就是我现在所拥有的:
sed -i 's/test//g' MyJavaFile.java
唯一缺少的是将test
之后的角色转换为小写。
由于某种原因,引用正则表达式变量似乎不起作用。
sed -i 's/test([A-Z]{1})/\1/g' MyJavaFile.java
答案 0 :(得分:1)
您可以使用以下GNU sed命令:
sed -r 's/test([[:upper:]])([^[:space:]]*)/\L\1\2/g' file.java
对于就地编辑,您需要传递-i
,但我会首先测试该命令。
模式说明:
-r
启用扩展的POSIX正则表达式。[[:upper:]]
匹配大写字符[^[:space:]]*
匹配零个或多个非空格字符替换说明:
\L
将以下表达式转换为大写。 \1
是内容优先捕获组。 \2
是第二个捕获组的内容。