gpt4 book ai didi

regex - find -exec 上的多个 sed 操作

转载 作者:太空宇宙 更新时间:2023-11-04 09:50:12 24 4
gpt4 key购买 nike

我正在尝试对 find -exec 操作执行多个 sed 操作。我的代码如下所示:

find . -name '*.html.haml' -exec sed -i '' 's/restaurant_id/company_id/g' && sed -i '' 's/restaurants/companies/g' && sed -i '' 's/restaurant/company/g' && sed -i '' 's/Restaurants/Companies/g' && sed -i '' 's/Restaurant/Company/g' "{}" \;

这似乎行不通。我怎么能那样做?

错误:

find: -exec: no terminating ";" or "+"

最佳答案

正如其他人所说,问题是 && 被解释为执行 sed 命令 after find 命令完成,而不是传递一串要在每个文件上执行的命令。

获得所需结果的最简单方法是将所有这些组合到一个带分号的 sed 命令中。像这样:

$ find . -name '*.html.haml' -exec sed -i 's/restaurant_id/company_id/g;s/restaurants/companies/g;s/restaurant/company/g;s/Restaurants/Companies/g;s/Restaurant/Company/g' "{}" \;

关于regex - find -exec 上的多个 sed 操作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11985432/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com