【发布时间】:2016-11-17 18:22:12
【问题描述】:
我正在编写一个 unix shell 脚本,它对主目录的十个子目录(标记为 1-10)中的数据进行排序。在每个子目录中,脚本需要重命名文件 hehd.output 和 fort.hehd.time,并将文件 hehd.data 复制到一个新名称的 .data 文件中。
我想做的是用以下格式重命名这些文件:
AA.BB.CC
在哪里
AA = a variable in the hehd.data file within the subdirectory containing the file
BB = the name of the subdirectory containing the file (1-10)
CC = the original file name
每个子目录都包含一个 hehd.data 文件,每个 hehd.data 文件都包含字符串 ij0=AA,其中 AA 表示我想用来重命名同一子目录中的文件的变量。
例如:运行时,脚本应在 /home/4/hehd.data 中搜索字符串 ij0=2,然后将 /home/4/hehd.output 移动到 /home/4 /2.4.hehd.输出。
我目前正在使用 grep 命令让脚本搜索字符串 ij0=* 并将其复制到子目录中的新文本文件中。接下来,从文本文件中删除字符串ij0=,然后将其内容用于重命名同一子目录中的所有目标文件。 shell 脚本的最后一行删除了文本文件。
我正在寻找一种更好的方法来完成此操作,最好是所有十个子目录都可以通过相同的脚本一次排序。我的脚本似乎非常低效,并且不能自己做我想做的所有事情。
我该如何改进?
任何意见或建议将不胜感激;我正在努力成为一个更好的计算机用户,这意味着要学习更好的做事方式。
【问题讨论】:
-
请考虑提供实际代码,而不是仅提供英文伪代码。实现细节很重要,如果不阅读实现,我们就无法看到它们是什么。
-
(另外,一般来说,StackOverflow 中优先考虑具有特定答案的重点问题;可以解释为“我们可以讨论 X 吗?”的开放式问题在这里并不完全受欢迎,因为反对“我怎样才能解决问题 X?”的问题,它有一个具体的解决方案;对于通用的“我怎样才能改进这个已经工作的代码?”问题,请参阅codereview.stackexchange.com——但请阅读网站规则在那里,而不仅仅是转发)。
-
...stackoverflow.com/help/dont-ask 涵盖了类似的领域。
标签: bash shell sh rename local-variables