Bash脚本以递归方式迭代文件,并将输出保存到名称相同但扩展名不同的文件中

时间:2013-06-15 02:47:04

标签: bash shell

我正在尝试递归迭代目录中的所有.html文件,并使用bash脚本将它们转换为.jade。

#!/bin/bash
for f in ./*.html ./**/*.html ; do
  cat $f | html2jade -d > $f + '.jade';
done;

当然$f + '.html'位不正确。我该如何解决这个问题?

2 个答案:

答案 0 :(得分:4)

#!/bin/bash
shopt -s globstar

for f in **/*.html; do
    html2jade -d < "$f" > "${f%.html}.jade"
done

答案 1 :(得分:1)

大多数情况下,连接是默认设置。

... > "$f.jade"

此外:

html2jade ... < "$f"

... > "${f%.html}.jade"