用文件

时间:2017-07-06 00:38:31

标签: go sed golint

我已使用sed使用sed -i 's/\<old_name\>/newName/g' *.go替换* .go文件中的变量 我的目标是消除golinter错误。 具有共同模式的字符串如何,例如用2替换1

  1. fmt.Printf("blah blah blah")fmt.Printf("yadda yadda yadda")
  2. fmt.Println("blah blah blah")fmt.Println("yadda yadda yadda")
  3. 在这种情况下,我们不想替换: 1. fmt.Printf("print speed= %d",speed) //所以这里的关键是结束模式应该是")。 2. log.Printf语句//仅替换&#34; fmt。&#34; 关于这个的任何指示?

2 个答案:

答案 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" .

请注意,请先执行备份文件。