在Bash中运行动态循环的问题

时间:2015-09-24 15:33:46

标签: bash

我有一个Bash脚本应该放在每个子目录(其中3个)中,并剪切配置文件的第二个字段并创建一个包含它的新文件。它应该有3个单独的文件,但相反,它只创建一个。问题是我的脚本正在从所有这些文件中获取所有配置文件并将其合并到一个文件中。这是我的简单脚本:

#!/bin/bash 
    listdir="/opt/logs/"
    cut -d "," -f2 $listdir/*/*.logs > client1.log
done

现在,我知道*意味着一切,但它确实做了,但我想要做的是从每个客户端的原始日志文件中删除第二个字段,并在其目录中动态创建一个新文件。任何反馈都非常感谢。

非常感谢...

1 个答案:

答案 0 :(得分:0)

您需要实际遍历目录:

#!/bin/bash 
for d in /opt/logs/*; do
    log="client.$(basename "$d").log"
    cut -d "," -f2 "$d"/*.logs > "$log"
done