【问题标题】:Run a script with different input files使用不同的输入文件运行脚本
【发布时间】:2015-06-27 12:52:57
【问题描述】:

过去两周我一直在使用 groovy。我有一个脚本,我通常会这样运行:

    groovy script input

其中 input 是输入文件的名称。但是,现在我想对大约 100 个这些文件的整个目录重复相同的操作 - 有没有办法在单个命令中运行它,而不是一个接一个?

【问题讨论】:

  • 您必须更改 groovy 脚本以获取多个输入文件,还是已经这样做了?

标签: bash ubuntu groovy terminal


【解决方案1】:

当然,使用 shell 循环:

for file in *; do groovy script "$file" > file.out; done

这将遍历当前目录中的所有文件(和目录)。要使其递归,这意味着它还将查看子目录内部,请使用:

shopt -s globstar
for file in **/*; do groovy script "$file" > file.out; done

最后,为了避免使用目录(如果有的话),请使用:

for file in *; do [ -f "$file" ] && groovy script "$file" > file.out; done

【讨论】:

  • 我试图做这样的事情来检查它:for file in *;做 wc -l 文件;完成,它似乎没有工作。我究竟做错了什么?它说没有这样的文件或目录
  • 哈!我认为这是问题所在,但我没有足够的经验来自己弄清楚正确的语法。谢谢!
  • 还有一个问题:如果文件不在我的当前目录中,而是在子目录中怎么办?在 ./subdirectory/* 中说好是行不通的
  • @user132290 它应该是:for file in subdir/*; do echo "$file"; done。确保subdir 实际上是一个子目录而不是子子目录。
  • @user132290 你正在运行一些完全不同的东西。 java是从哪里来的?如果你想调试它,请加入我this chat room
猜你喜欢
  • 1970-01-01
  • 2021-03-23
  • 2019-11-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-02-02
  • 2022-07-21
  • 2011-11-01
相关资源
最近更新 更多