파일의 한 줄을 두 개의 변수(마지막 필드용 변수와 다른 필드용 변수)로 읽으려면 어떻게 해야 합니까?
예를 들어 다음과 같은 파일이 있습니다.
hello world! 10s
It is a good day. 4m
...
각 행을 두 개의 변수로 읽고 싶습니다. 하나는 행 끝의 시간 간격을 포함하는 변수이고 다른 하나는 행 앞의 필드를 포함하는 변수입니다. 내가 아는 한 이 작업을 수행하는 방법을 알고 싶습니다.
while read line
do
... # split $line into $message and $interval
myprogram "$message" "$interval"
done < "$inputfile"
답변1
간격에 공백이 포함되어 있지 않으면 다음과 같이 작동합니다.
#!/bin/bash
input=/path/to/input
while read -r line; do
message=${line% *}
interval=${line##* }
echo "$message"
sleep "$interval"
done < "$input"
${line% *}
마지막 공백 문자 뒤의 모든 내용을 제거합니다.
${line##* }
마지막 공백 문자 앞의 모든 내용을 제거합니다.