【问题标题】:unix: execute gnuplut in different directories using find | xargsunix:使用 find | 在不同目录中执行 gnuplut xargs
【发布时间】:2013-06-21 19:06:32
【问题描述】:

我对使用 shell 还是很陌生。我在子目录中有许多 gnuplot 脚本。这些包括输入文件的相对路径。因此,要以正确的方式执行它们,我必须转到脚本的父目录然后执行它。有没有办法通过查找来做到这一点? xargs 组合?

find . -name "*gpf" | xargs -i{} dirname {}

是我目前发现的。但我不知道现在如何转到父目录,然后在那里执行 gnuplot。有没有办法做到这一点?

非常感谢。

编辑:还有其他人有任何想法可以帮助我解决这个问题吗?真的会对我有很大帮助!提前致谢。

【问题讨论】:

    标签: unix find xargs


    【解决方案1】:

    您可以尝试使用find-exec 选项执行gnuplot:

    find . -name "*.gpf" -exec gnuplot \{\} \;

    【讨论】:

    • 感谢您的回答,但这不是我想要的。您推荐的将执行当前目录中的 gnuplot 脚本。但这并没有完成工作,因为我在脚本中使用了相对路径,因此 gnuplot 将尝试查找与当前目录相关的输入文件,而不是与脚本所在目录相关的输入文件。所以 gnuplot 应该在我用 find 命令找到的脚本所在的子目录中执行。
    【解决方案2】:

    使用 GNU 并行:

    find . -name "*gpf" | parallel "cd {//};gnuplot {/}"
    

    了解有关 GNU Parallel 的更多信息:https://www.youtube.com/playlist?list=PL284C9FF2488BC6D1

    10 秒安装:

    wget pi.dk/3 -qO - | sh -x
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-08-22
      • 1970-01-01
      • 2021-12-26
      • 1970-01-01
      • 2017-04-03
      • 2018-11-13
      相关资源
      最近更新 更多