표준화 된 이름 (file1pop.zip, ..., filenpop.zip)의 일련의 압축 파일이 있습니다. 이 파일들 각각에는 popdnamei.asc, i = {1, n}과 관련된 파일이 있습니다. 이 파일들에 대해 두 개의 명령을 실행하고 싶습니다. 그 중 asc 파일을 tif로 변환합니다. 그러나, 나는 bash 스크립트를 작동시킬 수 없다. 나는 bash에서 문자열을 잘리는 방법을 정확히 이해하지 못한다고 생각합니다. 누가 내 실수인지 아는 사람 있습니까?일련의 문자열을 자르기 별표가있는 Bash
###################
## Choose path
###################
cd
cd path/to/my/directory/with/zipfiles
###################
## Unzip, convert to tif and project (WGS84)
###################
for x in *pop.zip
do
echo $x
files=${x%%.*} #with this I hope to target the base name "filei", i={1,n} without the ".zip" extension
mkdir $files
unzip -d $files $x
y=popd*.asc
if [ -f $files/$y ] #with this I want to run my commands only if the file popdnamei.asc does exist in the file
then
newy=${y%%.*} #extract "popdnamei" without ".asc" extension
gdal_translate $files/$y $files/$newy.tif #command 1
gdalwarp -s_srs "WGS84" -t_srs "WGS84" $files/$newy.tif $files/$newy_PROJ.tif #command 2
cp $files/$newy_PROJ.tif ../Output_Storage/
fi
rm -rf $files
done
변수 $y
에 문제가 있다고 생각합니다. 프로그램이 실행 중일 때 출력 파일의 이름이 "newypopd*.tif
"이고 "completed"라는 이름 (popdnamei.tif
)이 아닌 별표가 있는지 확인했습니다. 또한 Output_Storage 디렉토리에 파일이 기록되지 않습니다. 완성을 위해 별표로 정의 된 변수를 잘라내는 데 어려움이 있다고 생각합니다. 나는 그것이 무엇인지 완전히 이해하지 못하고 있습니다. 누군가 나를 도울 수 있습니까? 감사합니다.
설명해 주셔서 감사합니다. 오류가 발생했습니다. –