gpt4 book ai didi

linux - 甲骨文 ODI ||操作系统命令 ||重命名文件

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

我在 Oracle ODI 11g 中工作。我有linux源服务器。我必须通过删除前缀 (e_) 来重命名文件夹中的所有文件。我使用了命令:

     cd /weblogic/
for f in $(ls e*); do echo mv "${f}" "${f##e_}"; done

通过腻子,它工作正常。此命令在 ODI 的 OSCommand API 中不起作用。我得到以下异常:

   java.io.IOException: Cannot run program "for": error=2, No such file or directory   

在命令周围添加引号并不能解决问题。我也曾尝试将此命令复制到 test.sh 文件中,但它也不会从 ODI OSCommand 执行。 (也是从腻子执行的)。文件的权限设置为 777。我得到以下异常

    java.io.IOException: Cannot run program "./weblogic/test.sh": error=2, No such file or directory

我可以从 ODI 重命名目录中的单个文件,但它不适用于“for”。谁能帮我从 ODI 执行这个命令?或者这个问题有什么解决方法吗?

最佳答案

我自己找到了解决方案。

1) 我正在使用 OSCommand,但无法识别命令。我使用了 ODIOSCommand,它运行良好。

2) 我正在指定 bash shell 命令,它抛出异常

   syntax error at line 1: `$'

根据文档,http://gerardnico.com/doc/odi/webhelp/en/ref_tools/snpsoscommand.htm , ODI 支持 POSIX 兼容的操作系统,使用“sh”。我用过

    cd #V_SRC_BB_LOCAL_DIR ; for f in e_* ; do mv "$f" "`echo $f | sed -e 's/^e_//'`" ; done

#V_SRC_BB_LOCAL_DIR 是包含文件目录的全局变量。

请注意,重命名 ODI 目录中的文件只是一个示例。如果只需要重命名目录中的文件,可以通过包中的ODIFileMove来完成。

关于linux - 甲骨文 ODI ||操作系统命令 ||重命名文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16859856/

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