我已使用sed使用sed -i 's/\<old_name\>/newName/g' *.go
替换* .go文件中的变量
我的目标是消除golinter错误。
具有共同模式的字符串如何,例如用2替换1
fmt.Printf("blah blah blah")
或fmt.Printf("yadda yadda yadda")
fmt.Println("blah blah blah")
或fmt.Println("yadda yadda yadda")
在这种情况下,我们不想替换:
1. fmt.Printf("print speed= %d",speed)
//所以这里的关键是结束模式应该是")
。
2. log.Printf语句//仅替换&#34; fmt。&#34;
关于这个的任何指示?
答案 0 :(得分:0)
我对您的问题感到有些困惑,但认为您正在尝试执行以下操作:
replace printf("yada yada yada") with println("yada yada yada")
not replace printf("print speed = %d", speed)
如果是这种情况,我会做类似以下的事情:
sed -i '/Printf(\".*\")/ s/Printf/Println/g' *.go
这应该使案例保持原样,您实际上想要使用格式。这是一个例子:
[sborza@msandn]:~$ cat tester.go
package main
import "fmt"
func main() {
speed = 1
fmt.Printf("vim-go")
fmt.Printf("speed = %d\n", speed)
}
[sborza@msandn]:~$ sed '/Printf(\".*\")/ s/Printf/Println/g' tester.go
package main
import "fmt"
func main() {
speed = 1
fmt.Println("vim-go")
fmt.Printf("speed = %d\n", speed)
}
答案 1 :(得分:0)
待办事项
gofmt -w -r "printf -> println" .
请注意,请先执行备份文件。