루프 공간 디렉터리 이름

루프 공간 디렉터리 이름

CT.txt다음 입력 데이터가 있는 것이 있습니다 . CT.txt:

test testing test 1

다음 스크립트를 사용하십시오.

#!/bin/bash
for CITY in $(cat /home/user/CT.txt)
do
 FILES=/mnt/dir1/dir2/$CITY/*
echo $FILES

다음과 같은 출력을 제공합니다.

/mnt/dir1/dir2/test
/mnt/dir1/dir2/testing
/mnt/dir1/dir2/test/*
/mnt/dir1/dir2/1/*

출력은 다음과 같아야 합니다.

/mnt/dir1/dir2/test
/mnt/dir1/dir2/testing
/mnt/dir1/dir2/test 1

CT.txt파일 사이에 공백을 두고 파일을 읽는 방법테스트 1.

답변1

awk에서 FS(필드 구분 기호)를 변경하면 이를 달성할 수 있습니다.

awk -F: '{ print "/mnt/dir1/dir2/"$1 }' CT.txt

답변2

CT.txt에 1/라인 항목이 있다고 가정하면 이 while루프가 작업에 더 적합합니다.

while IFS= read -r CITY; do
   FILES=/mnt/dir1/dir2/$CITY
   echo "$FILES"/*
done < /home/user/CT.txt

for루프는 이 경우에 적합하지 않지만 여전히 작동하도록 만들 수 있습니다.

# set the input field separator to newline and disable globbing
IFS=$'\n';set -f
for CITY in $(< /home/user/CT.txt); do
   FILES=/mnt/dir1/dir2/$CITY
   echo "$FILES"/*
done

관련 정보