一个文件系统,代表一本书,其中一个目录代表每个章节和每个章节,其中每个页面/ .png文件在目录中作为第n章第q节的p页面。第一页将列为0/0/0但第456页可能是第三章,第二部分第4页从包含所有其他页面/ .png文件的目录中将其设置为2/1/3
bash脚本如何递归搜索每个目录并将相应的页面组织到右侧页面中,文件系统可以像book / pdf一样被读取?因此第1页(文件系统中的0/0/0)将位于新目录中,闪亮标签显示1或001,而页面/文件456(2/1/3)将显示为精彩456?< / p>
我发现了一些使用类似以下内容的类似问题
find . type -d | while read -r d '' file; do mv .'{$d} done
找到其中的目录。但卡住重命名文件。所以我抓住了下面的剧本。
源
#!/bin/bash
cd
list=find `"path/to . " -type d`
for directory in $list; do
echo "directory=$directory"
cd $directory
imglist="ls | grep '\.png'"
for file in $imglist; do
mv home/
done
cd
done
#I didn't write either of these
但这只适用于两个级别。
那么如何最好地将它从凌乱的文件系统转移到一个简化的目录。
答案 0 :(得分:0)
如果我理解正确,以下内容可以提供帮助
bookroot='.' #the directory where are the chapters
final="./finalbook" #the destination
pages=( $(find "$bookroot"/[0-9]* -name \*.png -print | sed "s:$bookroot/::" | sort -t/ -k1n -k2n -k3n) )
for i in "${!pages[@]}"
do
echo cp "$bookroot/${pages[$i]}" "$final/$((i+1))_of_${#pages[@]}.png"
done
这是干运行。如果满意,请移除echo
。