假设有两种类型的 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
.
.
名单很长。我希望使用模式搜索所有 csv 文件*$ShortName*
,而不是硬编码,然后将$Part_Name
&分配$Target_dir
给$ShortName
.
例如,对于具有特定模式的所有 csv 文件*$ShortName*
,为具有特定模式的每个文件子
集分配参数Part_Name
& 。Target_dir