Suponha que haja dois tipos de arquivos csv com o seguinte formato de nome de arquivo:
Ass_B1_v1_<ShortName>_<ddmmyyyy>.CSV
CATUpd_v1_<ShortName>_<ddmmyyyy>.CSV
Ou o formato pode ser alterado para:
Ass_B1_v1_<ShortName>_<Name>_<ddmmyyyy>.CSV
CATUpd_v1_<ShortName>_<Name>_<ddmmyyyy>.CSV
O <ShortName>
é a forma abreviada de Name
:
Name|ShortName
A1 Dun|A1
Ant Cap|AC
.
.
.
Eu tenho uma lista que consiste em Part_Name
& Target_Directory
, que Part_Name=echo ${Name} | sed -e 's/ /_/'
e Target_dir=D:\GFTPRoot\Receive\${Part_Name}\LIST\ASCII\OUT
List.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
.
.
.
Eu normalmente codifico este & atribuiu o parâmetro lendo o parâmetro da lista
(Por exemplo, 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
.
.
A lista é bem longa. Em vez de codificar, desejo pesquisar todos os arquivos csv com o padrão *$ShortName*
e, em seguida, atribuir $Part_Name
& $Target_dir
para o $ShortName
.
Por exemplo, para todos os arquivos csv com o padrão específico *$ShortName*
,
atribua o parâmetro Part_Name
& Target_dir
para cada subconjunto de arquivos com o padrão específico.