ファイル名の形式に応じてパラメータを自動的に割り当てる方法は?

ファイル名の形式に応じてパラメータを自動的に割り当てる方法は?

次のようなファイル名形式の2種類のcsvファイルがあるとします。

Ass_B1_v1_<ShortName>_<ddmmyyyy>.CSV
CATUpd_v1_<ShortName>_<ddmmyyyy>.CSV

または、形式を次のように変更できます。

Ass_B1_v1_<ShortName>_<Name>_<ddmmyyyy>.CSV
CATUpd_v1_<ShortName>_<Name>_<ddmmyyyy>.CSV

これは<ShortName>次のように短縮された形式ですName

Name|ShortName
A1 Dun|A1
Ant Cap|AC
.
.
.

Part_Name&を含むリストがあります。Target_Directory
Part_Name=echo ${Name} | sed -e 's/ /_/'
Target_dir=D:\GFTPRoot\Receive\${Part_Name}\LIST\ASCII\OUT

リスト.txt:

Part_Name|Target_Directory
A1_Dun|D:\GFTPRoot\Receive\A1_Dun\LIST\ASCII\OUT
Ant_Cap|D:\GFTPRoot\Receive\Ant_Cap\LIST\ASCII\OUT
Bri_Deb|D:\GFTPRoot\Receive\Bri_Deb\LIST\ASCII\OUT
.
.
.


私は通常これをハードコードし、リスト(例:List.txt)から読み込んでパラメータを割り当てます。

[ ${ShortName} = "A1" ] && {
part=`grep ^"$A1_Dun" ${List} | cut -d"|" -f1`
Target_dir=`grep ^"$A1_Dun" ${List} | cut -d"|" -f2`}

[ ${ShortName} = "AC" ] && {
part=`grep "$Ant_Cap" ${List} | cut -d"|" -f1`
Target_dir=`grep "$Ant_Cap" ${List} | cut -d"|" -f2`}

.
.
.

for file in `find ${path} -name "*${ShortName}*" -type f`
do
.
.

リストは長いです。ハードコーディングして&を*$ShortName*割り当てる代わりに、パターンを使用してすべてのcsvファイルを検索したいと思います。$Part_Name$Target_dir$ShortName

たとえば、特定のパターンを持つすべてのcsvファイルの場合、*$ShortName*特定のパターンを持つファイルの各サブセットに&
パラメータを割り当てます。Part_NameTarget_dir

ベストアンサー1

おすすめ記事