ファイルの1行を2つの変数(最後のフィールド用の変数と別のフィールド用の変数)として読み取るにはどうすればよいですか?
たとえば、次のようなファイルがあります。
hello world! 10s
It is a good day. 4m
...
各行を2つの変数として読みたいです。 1 つは行末の時間間隔を含む変数、もう 1 つは行の前のフィールドを含む変数です。私が知っている限り、これを行う方法を知りたいです。
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##* }
最後の空白文字の前の内容をすべて削除します。