使用gawk/awk/sed修改java文件(交换java函数参数)

cdu*_*ont 1 java awk sed gawk

我有很多包含这样的语句的Java文件:

assertEquals(x, 0);
Run Code Online (Sandbox Code Playgroud)

我想在每个文件中交换2个参数.我怎么能以编程方式做到这一点?

The*_*eke 7

sed 's/assertEquals(\([^,]*\), *\([^)]*\));/assertEquals(\2, \1);/g' <input.file >output.file
Run Code Online (Sandbox Code Playgroud)

更好:

sed 's/assertEquals(\([^,]*\),[ ]\{0,1\}\([^)]*\));/assertEquals(\2, \1);/g' <input.file >output.file
Run Code Online (Sandbox Code Playgroud)

说明:

  • s/"pattern"/"substitution"/g // s =>替代,g =>在整线上
  • \(...\)捕获子模式.这可以通过\number.所以逻辑是s/assertEquals("pattern1","??whitespace??""pattern2");/assertEquals("pattern2", "pattern1");/g
  • [ ]\{0,1\}匹配逗号后的可能空格(0或1出现) - [ ]?对我不起作用?