首页 > 解决方案 > 如何迭代bash中的分隔值

问题描述

重击

输入:猫测试

  1 a;b;c;d
  2 a;b;c;d
  3 a;b;c;d

所需的输出是:

  1 a
  1 b
  1 c
  1 d
  2 a
  2 b
  2 c
  2 d
  3 a
  3 b
  3 c
  3 d 

对于程序员来说,这可能是一件非常简单的事情。谢谢你。

标签: bashfor-loopawksedwhile-loop

解决方案


解决方案1:您能否尝试以下操作。

awk -F'[ ;]' '{for(i=2;i<=NF;i++){print $1,$i}}' Input_file

解决方案 2:现在也添加另一个awk

awk '{gsub(/;/,ORS $1 OFS)} 1'  Input_file

推荐阅读