4 列 (ヘッダーなし) のテキスト ファイルから行を読み取る bash スクリプトがあります。行数は最大 4 行以下です。各行の単語はスペース文字で区切られています。
ab@from.com xyz@to.com;abc@to.com Sub1 MailBody1
xv@from.com abc@to.com;poy@to.com Sub2 MailBody2
mb@from.com gmc@to.com;abc@to.com Sub3 MailBody3
yt@from.com gqw@to.com;xyz@to.com Sub4 MailBody4
現在、私はファイルを解析しており、各行を取得した後、各行の各単語を変数に格納し、mailx を 4 回呼び出しています。以下のロジックに対するエレガントな awk/sed ソリューションがあるかどうか疑問に思っています。
- 行の総数を見つける
- while
read $line
、各行を変数に格納する - 各行を などとして解析
i=( $line1 )
しj=( $line2 )
ます ${i[0]}
、、${i[1]}
などとして各行から値を取得${i[2]}
し${i[3]}
ます- 電話
mailx -s ${i[2]} -t ${i[1]} -r ${i[0]} < ${i[3]}
- 次の行を解析して呼び出す
mailx
- 行がなくなるか、最大 4 行に達するまでこれを行います。
awk または sed は、上記の反復/ループ ロジックに対する洗練されたソリューションを提供しますか?