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 は、上記の反復/ループ ロジックに対する洗練されたソリューションを提供しますか?