베타 명령을 시작하면 다음과 같은 결과가 나타납니다.
dda6e95c-ecd1-4c22-a8df-f118af6aff02 Mount to DZ70cd on /dev/vda
f01e331e-0394-423f-b8ea-150f6b88029e Mount to DZ74cd on /dev/vdc
9f0d31ec-caa2-4e88-9cbd-4c82ebda5be3 Mount to DZe64c on /dev/vdc
2f3da174-1f9e-40e7-8869-563d90b103f4 Mount to DZ0d76 on /dev/vdc
다음과 같이 bash 루프를 통해 수신된 각 행에 대해 데이터 처리를 수행하고 싶습니다.
for i in `beta-command` ; do echo $i ; done ;
나는 다음과 같은 결과를 얻었습니다.
dda6e95c-ecd1-4c22-a8df-f118af6aff02
Mount
to
DZ70cd
on
/dev/vda
f01e331e-0394-423f-b8ea-150f6b88029e
Mount
to
DZ74cd
on
/dev/vdc
루프가 용어 대신 행을 고려하도록 어떻게 요청할 수 있나요?
고마워하는
답변1
설정할 수 있습니다내부 필드 구분 기호( IFS
) 줄 바꿈:
IFS=$'\n'; for i in $(beta-command) ; do echo $i; done
또는 while
루프를 사용하십시오.
while IFS= read -r i; do
echo $i
done < <(beta-command)
또는 다음을 사용하십시오 xargs
.
beta-command | xargs -I{} echo {}
awk
또는 작업이 텍스트 조작에 관한 것이라면 다음을 사용하십시오.
beta-command | awk '{print}'
장점(?)과결점루프를 사용하여 명령 출력 또는 파일의 각 줄을 처리하는 경우이것을 읽어보세요 (@Jeff Schaller에게 감사드립니다).