Files

動態循環遍歷目錄中的文件

  • July 8, 2019

我有很多文件:

i18n/
   editor.utf8
   editor_fr.utf8
   editor_ko.utf8
   editor_ge.utf8
   ...etc. (dozens of these)

我想執行一個實用程序,我們稱之為它fizzbuzz,它將“輸入文件”和“輸出文件”作為其程序參數。呼叫它的一個例子是:

fizzbuzz editor.utf8 editor.properties

或者:

fizzbuzz editor_fr.utf8 editor_fr.properties

因此,對於每次呼叫,我希望輸入文件是 下的不同文件i18n/,並且我希望輸出文件是同名文件,但具有不同的文件副檔名 ( .properties)。如果輸出/屬性文件已經存在,它應該被完全覆蓋。

我如何編寫腳本以便我可以fizzbuzz在 中的每個.utf8文件上執行i18n/,並為每個文件指定一個具有相同名稱的輸出,只是一個.properties文件?

迄今為止我最好的嘗試:

for FILE in i18n
do
   fizzbuzz FILE FILE.properties
done

只是創建一個單獨的FILE.properties文件。

如果所有文件都在 i18n 中的下一級,則不需要 find 方法。

更改 for 命令以使用:

對於 i18n/* 中的文件

此外,變數必須在引用時以 $ 開頭。

我的建議是在第一次執行 for 循環時使用安全命令,否則會造成很大損失。例如,只需列出它看到的 FILE 值,並顯示它將執行的命令:

for FILE in i18n/*
do
   echo "fizzbuzz $FILE $FILE.properties"
done

當你滿意這是你想要的,然後帶走迴聲。

如果您希望它遍歷多個目錄,則此答案將無法正常工作,但是我將按照原始問題進行處理,該問題看起來可能是一個平面目錄。

引用自:https://unix.stackexchange.com/questions/528958