小编Sho*_*hon的帖子

在 Bash 中从 File 中读取行并将单词解析为 mailx 参数的变量

我有一个 bash 脚本,它从具有 4 列(无标题)的文本文件中读取行。行数最多可以为 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
Run Code Online (Sandbox Code Playgroud)

目前,我正在解析文件,在获取每一行后,我将每一行中的每个单词存储到一个变量中并调用 mailx 四次。想知道下面提到的逻辑是否有一个优雅的 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 是否为上述迭代/循环逻辑提供了优雅的解决方案?

bash sed mailx

5
推荐指数
1
解决办法
7565
查看次数

标签 统计

bash ×1

mailx ×1

sed ×1