Bash - 如何循环子目录并执行此命令

Bash - 如何循环子目录并执行此命令

好吧,在我决定发布此内容之前,我已经尝试了此处提供的与我的问题相关的所有解决方案。我知道这很简单,但这是我第一次处理 Bash ..所以请耐心等待

我有这个脚本

    FILES=*.html
for f in $FILES
do

  # extension="${f##*.}"
  filename="${f%.*}"
  echo "Converting $f to $filename.md"
  `pandoc $f -t markdown -o $filename.md`
  rm $f
done

创建此脚本的目的是将充满 Html 文件的目录转换为等效的 Markdown 文件。它使用 Pandoc 进行转换。

问题是这个脚本只会转换同一个文件夹中的文件,我想转换子文件夹中的所有文件,如下所示:

Folder1/Folder2/folder3/index.html

那么关于我如何做到这一点有什么想法吗?

答案1

使用几乎相同的代码,但获取完整路径find并注意空格

find ./path/to/start/from -iname "*.htm*" -exec bash -c 'fn=${1%.*}; sn=${fn##*/}; 
    echo "Converting $1 to $sn.md"; 
    pandoc "$1" -t markdown -o "$fn.md" && rm "$1"
' bash {} \;

的构造find .....-exec

sh -c `some code here` sh {}

{}frombash返回到bash -cas$1并让您从那里开始玩它。

相关内容