grep 出力形式

grep 出力形式

以下のコードを使用して「$2」「$5-*」を印刷しようとしています。

while IFS= read -r a name x x desc; do
   printf '%-15s %s\n' "$name" "$desc"
done < <(grep "^function" ~/.functions)

しかし、行全体が$ aに割り当てられているようです。

私は何が間違っていましたか? grep(GNU grep) 3.7 実行

ありがとう

関連情報