다음과 같은 파일 이름 형식을 가진 두 가지 유형의 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_Name
Target_dir