与 sed 交换单词

Car*_*tto 1 sed text-processing

我需要帮助sed,实际上是 Linux 正则表达式:
我需要更改括号之间的两个参数,例如,如果该行是

 mysqli_select_db($par1, $par2)<br/>
Run Code Online (Sandbox Code Playgroud)

我需要将其更改为

 mysqli_select_db($par2, $par1)<br/>
Run Code Online (Sandbox Code Playgroud)

我需要一些通用的东西,它们并不总是会是par1par2

Fre*_*ddy 5

一种更迂腐的方法sed

sed 's/\(mysqli_select_db(\)\([^,]*\)\(,[[:space:]]*\)\([^)]*\))/\1\4\3\2)/g' file
Run Code Online (Sandbox Code Playgroud)
  • s/代替
  • \(开始捕获组 1
  • mysqli_select_db(匹配文字字符串
  • \)结束捕获组 1
  • \(开始捕获组 2
  • [^,]*匹配任何非逗号字符
  • \)结束捕获组 2
  • \(开始捕获组 3
  • ,[[:space:]]*匹配逗号和可选空格字符
  • \)结束捕获组 3
  • \(开始捕获组 4
  • [^)]*匹配任何非)字符
  • \)结束捕获组 4
  • )关闭)命令
  • /\1\4\3\2)/g替换为捕获组 1、4、3、2 并关闭)