2013-10-23 53 views
2

我想在ANT中移動一些文件,但無法弄清楚如何去做。我知道如何以順序方式做到這一點,但無法弄清楚這種做法的「螞蟻方式」。基於他們在的文件夾移動和重命名文件

./<language>/<FileName>.properties 

到:

從移動文件

./<FileName>_<language>.properties 

因此,例如,我有:

./fr/file1.properties 
./fr/file2.properties 
./fr/file3.properties 
./en/file1.properties 
./en/file2.properties 
./en/file3.properties 
./ko/file1.properties 
./ko/file2.properties 
./ko/file3.properties 

我需要移動這些了一個目錄和重命名文件像這樣:

./file1_fr.properties 
./file2_fr.properties 
./file3_fr.properties 
./file1_en.properties 
./file2_en.properties 
./file3_en.properties 
./file1_ko.properties 
./file2_ko.properties 
./file3_ko.properties 

有沒有一種簡單的方法來做這個映射在螞蟻?我不知道我會支持哪些語言或文件名是什麼。

在bash中這將是直截了當的。我會做這樣的事情:

find ./* -maxdepth 0 -type d | while read DIR; do 
      # */ Correct syntax highlighting 

    find $DIR -maxdepth 0 -type f | while read FILE; do 

     # Note: this would produce file1.properties_fr 
     # which isn't exactly right. Probably need to 
     # use sed to remove and add .properties. 
     mv $DIR/$FILE ./$FILE_$DIR 

    done; 
done; 

回答

2

move任務使用正則表達式mapper

<target name="rename"> 
    <move todir="."> 
    <fileset dir="."> 
     <include name="**/*.properties" /> 
    </fileset> 
    <mapper type="regexp" from="([^/]*)/([^/]*)(\.properties)$" to="\2_\1\3" /> 
    </move> 
</target> 
+0

只是打我!只是想通了。承諾我的代碼,只是檢查回來,看看有沒有人回答。 – sixtyfootersdude

相關問題