Bash에서는 행의 필드를 배열로 읽었습니다. 강조하자면 성능이 문제이므로 하위 프로세스를 생성하는 것은 감당할 수 없습니다.
코드를 더 읽기 쉽게 만들기 위해 필드를 변수에 넣고 싶습니다 . 다음 $width
과 ${array[0]}
같이 각 변수를 수동으로 설정해야 하는데, 이는 중복이 많습니다.
while read line; do
array=($line)
width=${array[0]}
height=${array[1]}
size=${array[2]}
date=${array[3]}
time=${array[4]}
# use $width, $height, etc. in script
done < file
list
PHP의 지시어처럼 이를 수행하는 간단한 방법이 있나요?
list($width, $height, $size, $date, $time) = $array;
답변1
예:
while read -r width height size thedate thetime; do
# use variables here
done <file
이는 표준 입력에서 데이터를 읽고 공백(공백 또는 탭)으로 데이터를 분할합니다. 마지막 변수는 "남은" 데이터를 모두 가져옵니다(읽은 변수보다 필드가 더 많은 경우). 이것은바꾸다변수를 읽습니다 line
.
유틸리티 이름 대신 변수 이름 thedate
과 를 사용했습니다 .thetime
date
time
구분선탭만, IFS
다음으로 설정된 탭 read
:
IFS=$'\t' read -r width ...etc...
또한보십시오: