【问题标题】:use a perl script to make files same extension filename使用 perl 脚本使文件具有相同的扩展名文件名
【发布时间】:2017-10-25 03:46:14
【问题描述】:

我有一个 Python 脚本,它从化学程序日志文件中提取一组数字并按升序对它们进行排序。

如何使用 Perl 让脚本读取多个文件并为每个 .log 文件创建一个 .dat 文件?

脚本会自动生成一个.dat 文件,但如果我在多个.log 文件上使用它,它会覆盖每个.dat 文件并只生成一个.dat 文件。

这是我在提示符下输入的内容:

for i in `ls *log`; do perl thermo.pl $i; done

我猜测脚本中的某些内容告诉它一次只处理一个文件。

脚本不是我写的;来自NIST site

【问题讨论】:

  • 你试过perl thermo.pl *log吗?
  • 我知道这一切看起来都很容易,但如果您不会编写软件,那么您应该花钱请人来解决您的问题。您不应该希望 Stack Overflow 上有免费的解决方案。您将如何处理免费解决化学问题的请求?
  • 我在您的问题中添加了“NIST 站点”的超链接,这是您提供的唯一线索,但我们需要先查看 thermo.pl 的内容,然后才能开始帮助您.如果您显示该代码(或正确链接到该代码),那么也许您会发现有人愿意免费提供他们的服务。
  • @AKHolland:从 OP 的描述来看,thermo.pl 听起来像是附加到具有硬编码名称的文件中。你没有理由相信它可以在命令行上接受多个文件名。
  • 欢迎来到 StackOverflow。请采取tour,学习提出好问题stackoverflow.com/help/how-to-ask,制作minimal reproducible example。一个 MCVE 应该包括各种样本输入(说明所有方面)和所需的输出。

标签: python perl file gaussian


【解决方案1】:

看起来这不是 Perl 问题。

你可以试试这样的:

(将 result_file.dat 更改为您的 perl 脚本生成的实际 .dat 文件名)

for i in `ls *log`; do perl thermo.pl $i && mv result_file.dat $i.dat; done

【讨论】:

  • 感谢大家的帮助。很抱歉,我没有包含 thermo.pl 的代码。这里是:
  • Heath Watts,您在运行之前是否将我的示例中的 更改为 ?应该是这样的:---for i in `ls *log`; do perl thermo.pl $i && mv thermo.dat $i.dat; done---你得到了什么结果?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2010-12-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多