我需要regexp,它将删除所有目录中的tinrab
grep -rl "tinrab" /home/miki/go/src/github.com/meower
/home/miki/go/src/github.com/meower/pusher-service/main.go
/home/miki/go/src/github.com/meower/Dockerfile
/home/miki/go/src/github.com/meower/event/nats.go
/home/miki/go/src/github.com/meower/event/event.go
/home/miki/go/src/github.com/meower/meow-service/handlers.go
/home/miki/go/src/github.com/meower/meow-service/main.go
/home/miki/go/src/github.com/meower/query-service/handlers.go
/home/miki/go/src/github.com/meower/query-service/main.go
/home/miki/go/src/github.com/meower/search/elastic.go
/home/miki/go/src/github.com/meower/search/repository.go
/home/miki/go/src/github.com/meower/Gopkg.lock
/home/miki/go/src/github.com/meower/Gopkg.toml
/home/miki/go/src/github.com/meower/db/repository.go
/home/miki/go/src/github.com/meower/db/postgres.go
/home/miki/go/src/github.com/meower/.git/logs/HEAD
/home/miki/go/src/github.com/meower/.git/logs/refs/heads/master
/home/miki/go/src/github.com/meower/.git/logs/refs/remotes/origin/HEAD
/home/miki/go/src/github.com/meower/.git/config
例如在Dockerfile中,我有这行
WORKDIR /go/src/github.com/tinrab/meower
我的目标是使生产线没有丁拉布
WORKDIR /go/src/github.com/meower
此正则表达式
replaceAll("/tinrab*/ *", " ")
应以某种方式实施。 有什么想法吗?
如果我尝试
grep -rl "tinrab" /home/miki/go/src/github.com/meower | xargs replaceAll("\/tinrab\/", "")
我知道了
bash: syntax error near unexpected token `('
答案 0 :(得分:2)
您说过您想使用正则表达式/tinrab*/ *
,但是根据您提供的示例,我想/tinrab
可以满足您的要求。
grep -rl "tinrab" /home/miki/go/src/github.com/meower | \
xargs -r sed -i 's!/tinrab!!g'
我使用的sed表达式的一般格式为:s!<from>!<to>!g
,其作用与您考虑的replaceAll("<from>", "<to>")
伪代码相同。