루프에서 각 csv 파일의 레코드를 가져오는 중에 문제가 발생했습니다.

루프에서 각 csv 파일의 레코드를 가져오는 중에 문제가 발생했습니다.

요구 사항이 있는데 함수에 인수를 전달하려고 할 때 몇 가지 문제가 있습니다. 내 요구 사항은 다음과 같습니다.

테이블, 스키마, 데이터베이스 및 호스트라는 키워드가 포함된 파일 이름을 가진 4개의 csv 파일이 있습니다. 다음 예의 경우:

Rebecca_Delete_Schema_01.csv
Rebecca_Delete_Schema_02.csv
Rebecca_Delete_Host_01.csv
Rebecca_Delete_Database_01.csv
Amable_Delete_Database_02.csv
Raja_Delete_Database_03.csv
Rebecca_Delete_Table_01.csv
Samar_Delete_Table_02.csv

내 요구 사항은 일부 응용 프로그램 특정 삭제 명령을 사용하여 테이블, 스키마, 데이터베이스 및 호스트 순서로 이러한 파일을 삭제하는 것입니다.

파일에는 다음과 같은 기록이 있습니다.

/SVP3458.CDC.STAT.COM/ORACLE DATABASE PREST.db --Database

/SVP3458.CDC.STAT.COM/ORACLE DATABASE PREST/COMM/EMAIL_DETAIL.tbl-- Table

호스트와 아키텍처도 마찬가지입니다.

삭제 명령은 이러한 식별 문자열에서 직접 작동합니다. 아래는 내 스크립트입니다.

process_deletecm()
{

ISCRED_PATH=/opt/IBM/InformationServer/Clients/iscreds/cli

cd $ISCRED_PATH;

sed -ie 's/ /\*/g ' $1

echo $1
for file in $(cat $1 )
  do
    for Asset in $(cat $file)
        do
          ./iscred.sh deletecm -dom profiling:8006 -authfile file.auth  -cm ''$Asset'' -f
       done
  done
}

DB_PATH=/opts/reports/AB/Table_Delete
for csvfile in $DB_PATH/*.[Cc][Ss][Vv]; do
filename="$(basename "$csvfile")"
if [[ "${filename,,}" = *table* ]]; then
echo $filename >> $DB_PATH/Tab_Delete_File.csv

elif [[ "${filename,,}" = *schema* ]]; then
echo $filename >> $DB_PATH/Sch_Delete_File.csv
elif [[ "${filename,,}" = *database* ]]; then
echo $filename >> $DB_PATH/DB_Delete_File.csv

elif [[ "${filename,,}" = *host* ]]; then
echo $filename >> $DB_PATH/Hst_Delete_File.csv
fi
done

process_deletecm $DB_PATH/Tab_Delete_File.csv
process_deletecm $DB_PATH/DB_Delete_File.csv

이러한 기능을 사용하여 해당 실행 순서를 시행하려고 합니다.

문제는 각 csv 파일의 레코드 수준으로 반복할 때입니다. 두 번째 루프의 "자산"은 정확한 ID 문자열을 가져오지 않습니다. 즉, 삭제 명령은 각 문자열에서만 작동하므로 파일(/SVP3458.CDC.STAT.COM/ORACLE DATABASE PREEST.db)의 레코드입니다.

루프 조건에서 내가 어디에서 잘못되고 있는지 말해 줄 수 있는 사람이 있습니까?

관련 정보