【发布时间】:2019-01-09 20:58:39
【问题描述】:
我有一个结构如下的文件目录:
./DIR01/2019-01-01/Log.txt
./DIR01/2019-01-01/Log.txt.1
./DIR01/2019-01-02/Log.txt
./DIR01/2019-01-03/Log.txt
./DIR01/2019-01-03/Log.txt.1
...
./DIR02/2019-01-01/Log.txt
./DIR02/2019-01-01/Log.txt.1
...
./DIR03/2019-01-01/Log.txt
...等等。
每个DIRxx 目录都有许多按日期命名的子目录,它们本身有许多需要连接的日志文件。要连接的文本文件的数量各不相同,但理论上可能多达 5 个。我希望看到对日期目录中的每组文件执行以下命令(请注意,文件必须以相反的顺序连接):
cd ./DIR01/2019-01-01/
cat Log.txt.4 Log.txt.3 Log.txt.2 Log.txt.1 Log.txt > ../../Log.txt_2019-01-01_DIR01.txt
(我知道上面的命令会给出某些文件不存在的错误,但cat 无论如何都会做我需要的)
除了 cd 进入每个目录并运行上述 cat 命令之外,我如何将其编写到 Bash shell 脚本中?
【问题讨论】:
-
使用
find和-exec -
您在这具体部分遇到了什么问题?它是否使用您的目录名称并将
/s 转换为_s?它是否在目录上循环?如果您将问题范围缩小到足以确定您在确定如何执行时遇到困难的具体操作,我们可能在知识库中已有关于所有这些事情的问答条目。
标签: bash shell unix command-line