首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >WildCard查找替换CP

WildCard查找替换CP
EN

Unix & Linux用户
提问于 2019-01-07 14:46:17
回答 1查看 246关注 0票数 1

我正在尝试替换与CentOS上特定模式*匹配的文件,但它不起作用。

我最初写道:

代码语言:javascript
复制
cp example.com/(*)/orm-mysql/build/conf/(*)-conf.live.php example_dev.com/$1/orm-mysql/build/conf/$1-conf.live.php

我希望将example_dev.com目录中的文件替换为example.com中同名的文件。

*模式是example.com/,然后是任何东西,直到/orm-mysql/build/conf/,然后是一个以第一个通配符值作为前缀并以-conf.live.php结尾的文件。

我尝试将findexec结合使用:

代码语言:javascript
复制
find /var/www/html/example.com -name '*/orm-mysql/build/conf/*-conf.live.php' -exec echo {} \;

但它犯了一个错误:

查找:警告: Unix文件名通常不包含斜杠(尽管路径名有)。这意味着'-name‘*/orm-mysql/build/conf/*-con.live.php’可能会在这个系统上一直被计算为false。您可能会发现‘-整体性名称’测试更有用,或者可能'-samefile‘。或者,如果您正在使用grep,您可以使用'find . -print0 grep -FzZ‘*/orm/build/conf/*-con.live.php’。

我认为这是因为-name用于文件,而不是路径。

我怎样才能做到这一点,还有比编写shell脚本更简单的方法吗?

下面是一些例子:

代码语言:javascript
复制
/var/www/html/example.com/video/orm-mysql/build/conf/video-conf.live.php
/var/www/html/example.com/images/orm-mysql/build/conf/images-conf.live.php
/var/www/html/example.com/audio/orm-mysql/build/conf/audio-conf.live.php

它们将取代:

代码语言:javascript
复制
/var/www/html/example_dev.com/video/orm-mysql/build/conf/video-conf.live.php
/var/www/html/example_dev.com/images/orm-mysql/build/conf/images-conf.live.php
/var/www/html/example_dev.com/audio/orm-mysql/build/conf/audio-conf.live.php
EN

回答 1

Unix & Linux用户

回答已采纳

发布于 2019-01-07 14:57:12

实际上,我会用shell循环来完成这个任务:

代码语言:javascript
复制
for dir in example.com/*; do
    prefix=${dir##*/}
    cp "$dir"/orm-mysql/build/conf/"$prefix"-conf.live.php \
        example_dev.com/"$prefix"/orm-mysql/build/conf/$1-conf.live.php
done

如果目标目录不存在,则会出现故障,但如果存在,则会按预期的方式工作。如果您想避免抱怨,请使用以下命令:

代码语言:javascript
复制
for dir in example.com/*; do
    prefix=${dir##*/}
    target=example_dev.com/"$prefix"/orm-mysql/build/conf/
    if [ -d "$target" ]; then
        cp "$dir"/orm-mysql/build/conf/"$prefix"-conf.live.php "$target"
    fi
done
票数 1
EN
页面原文内容由Unix & Linux提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://unix.stackexchange.com/questions/493009

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档