파일 이름 형식에 따라 매개변수를 자동으로 할당하는 방법은 무엇입니까?

파일 이름 형식에 따라 매개변수를 자동으로 할당하는 방법은 무엇입니까?

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

관련 정보