2016-09-19 2 views
1

I이 변수에 저장 어떤 경로 (변수 이름 -> 테스트)읽기 변수

echo "${test}" 

결과 :

나는 "공간"을 탈출 할
/abc/pqr/filepath1 
/abc/pqr/lmn/file path2 
/abc/pqr/rst/filepath3 

나는 2이 일을 어떻게해야합니까

stat -c '%U' ${test} , works for 1st and 3rd path. 

: 두 번째 경로의 특성과 각 경로의 소유자를 얻을, 나는 다음과 같은 명령을 사용하고 있습니다 경로? 미리 감사드립니다.

+1

당신은 변수에 단일 문자열의 모든 경로가? 이것은 배열을 사용하는 더 좋은 장소 인 것처럼 보입니다. –

+1

'$ test'에서 어떻게 이러한 경로를 얻고 있습니까? – anubhava

답변

1

각 파일 이름, 한 줄에 하나씩 얻을 수있는 while 구조를 사용

while IFS= read -r f; do stat -c '%U' "$f"; done <<<"$test" 

예 :

$ echo "$test" 
/abc/pqr/filepath1 
/abc/pqr/lmn/file path2 
/abc/pqr/rst/filepath3 

$ while IFS= read -r f; do echo "$f"; done <<<"$test" 
/abc/pqr/filepath1 
/abc/pqr/lmn/file path2 
/abc/pqr/rst/filepath3 
+2

그러나 이름은'filepath2'가 아니라'file path2'입니다. –

+0

@ BenjaminW. 나에게 아직 명확하지 않지만, 그렇다면 공간 제거가 필요없고 쉬울 것입니다. 편집 됨. – heemayl

+1

OP에는 공백을 포함하는 파일 이름이 있습니다 (이스케이프하고 삭제하지 않으므로'stat' 호출이 작동합니다). – chepner