gpt4 book ai didi

linux - Bash脚本帮助,包含处理文件的子目录

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:11:40 27 4
gpt4 key购买 nike

我绝对是脚本编写的新手。我有一个处理某些文件的脚本,但我无法弄清楚如何对包含许多子目录和数千个文件的目录中的所有文件运行此脚本。基本上我想使用这个脚本并针对名为 2011 的目录运行它,并让它处理每个子文件夹中的每个文件。

#!/bin/bash
FILES=./userfiles/*
for f in $FILES
do
echo ""
echo ""
echo "Processing File $f ...."
echo ""
echo ""
make FILE_TYPE=user CSS_PATH=./log.css SCRIPT_PATH=./toggle.js SAXON_JAR=/opt/saxon/saxon9he.jar $f.html
echo ""
echo ""
echo "File $f.html Generated"
done

最佳答案

以下脚本将递归到./userfiles 下的每个目录中并处理那里的所有文件,甚至是名称中有空格的文件(或其他恶意字符)。

此外,按照您编写脚本的方式,make 将作为最后一个参数传递给磁盘上显示的文件名并附加 .html。 .例如,文件 ./userfiles/subdir/foobar.txt将作为 ./userfiles/subdir/foobar.txt.html 传递给 make .如果这不是您想要的,请调整 ${file}.html相应地。

另外,如果你想要find 处理以 .html 结尾的文件, 那么您可以附加选项 -name "*.html"find命令在路径名后的任何位置。

#!/bin/bash

topLevelDir="./userfiles"

while IFS= read -r -d $'\0' file; do
echo
echo
echo "Processing File $file ...."
echo
echo
make FILE_TYPE=user CSS_PATH=./log.css SCRIPT_PATH=./toggle.js SAXON_JAR=/opt/saxon/saxon9he.jar "${file}".html
echo
echo
echo "File $file.html Generated"
done < <(find "$topLevelDir" -type f -print0)

关于linux - Bash脚本帮助,包含处理文件的子目录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4766309/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com