如何将文件中的一行读入两个变量:一个变量用于最后一个字段,另一个变量用于其他字段?
例如,我有一个文件:
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##* }
将删除最后一个空格字符之前的所有内容