Sunday, January 15, 2012 / Bash, Groovy

Bash カレントディレクトリの txt 拡張子のファイルを全部列挙した上でそれを html などに替えるシェルスクリプト

シェルスクリプトは便利だけど、拡張子の置きかえ記述がいつまでたっても覚えられない。

#!/bin/bash
for f in *.txt
do
    txtfile=$f
    htmlfile=${f%.*}.html 
    echo $txtfile $htmlfile
done

もうこんな仕事も groovy で済ませた方がいいのかな。 もし groovy だったら以下のようにかける。

new File('.').listFiles( { it.isFile() && it.name.endsWith('txt') } ).each{
    txtfile = it.name
    htmlfile = it.name.replaceAll(/txt$/,'html')
    println "${txtfile} ${htmlfile}"
}