从目录外处理文件



我正在尝试为eact.prt文件创建一个.info文件。

但我需要从不同的目录进行ir,每次都需要指向一个新的目录。

到目前为止,我有

#!/bin/bash
DP_DATE= cat /tmp/dp_date.txt
FOLDER= "/transfer/report_archive/preprod/$DP_DATE/"
for f in $FOLDER
do
for file in *.prt
do 
[ -f ".info.$file" ] || wc -c < "$file" >> ".info.$file"
done
done

我不确定这是否可行!

如有任何帮助,将不胜感激

分配中=之后不能有空格。要分配命令的输出,必须使用$(...)或backticks对其进行包装。

要处理另一个目录中的文件,最简单的方法是在处理之前将cd发送到该目录。我在循环中的子shell中进行处理,这样在处理下一个目录之前,它将返回到原始目录。

#!/bin/bash
DP_DATE=$(cat /tmp/dp_date.txt)
FOLDER="/transfer/report_archive/preprod/$DP_DATE/"
for f in $FOLDER
do ( # Subshell so cd is temporary
cd "$f"
for file in *.prt
do 
[ -f ".info.$file" ] || wc -c < "$file" >> ".info.$file"
done
)
done

您必须在$():中包装命令替换

DP_DATE=$(cat /tmp/dp_date.txt)

等号后的空格将导致一个空变量,并试图执行第二个参数:

FOLDER="/transfer/report_archive/preprod/$DP_DATE/"

相关内容

  • 没有找到相关文章

最新更新