Como executar a parametrização automática de acordo com o padrão do nome do arquivo?

1

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.

    
por Juliet.Y 06.03.2017 / 10:45

0 respostas