【发布时间】:2020-10-13 17:41:30
【问题描述】:
我知道我可以编写一个脚本来执行此操作,但必须有一种“酷”的方式。哈哈。
我想对子目录中所有 Git 存储库中的同名文件进行相同的文件更改 (sed)。所以我想做这个
$ cd repo1
$ git checkout master
$ git pull origin master
$ git checkout -b feature/issue-1234-change-url
$ find . -name application.properties | sed "s/url=https://url=https://my.oldurl-1342d3.com/my.newurl-3443493.com/g" {}+
$ cd ..
$ (do above for all subdirs)
但我想在一行中完成,所以我正在尝试这样做......
$ find . -type d -maxdepth 1 | ...... | sed "s/url=http://my.oldurl-1342d3.com/my.newurl-3443493.com/g" {}+
我错过了... 中的内容
什么是好的管道模式?还是我最好写一个 shell 脚本?
【问题讨论】:
-
你最好写一个脚本或一个shell函数。这太多了,不能塞进一行。
-
很高兴您在下面解决了您的问题。只是提醒一下,当您将 sed 与
s/pattern/replacment/形式一起使用时,任何属于您的模式或替换部分的/字符都需要转义。使用s@pat@repl@或其他不在pat或repl中的字符要简单得多。对于某些seds,您需要使用sed '\@pat@repl@(其中只有第一个@被转义。)祝大家好运。