用于编辑 csv 格式文本的 Bash 脚本

用于编辑 csv 格式文本的 Bash 脚本

作为清单 bash 脚本的一部分,我正在检查 SFP 模块并将它们添加到 .csv 文件中。目前的格式如下所示,长度各异:

RO01;1000BaseSX SFP;1000BaseSX SFP
RO02;1000BaseSX SFP;1000BaseSX SFP;1000BaseLX SFP

我的目标是为第一行之后的每一行提供自己的行以及第一行。所以上面的行应该是这样的:

RO01;1000BaseSX SFP
RO01;1000BaseSX SFP
RO02;1000BaseSX SFP
RO02;1000BaseSX SFP
RO02;1000BaseLX SFP

我如何使用文本处理来实现这一目标?

答案1

可能的解决方案是使用awk

awk -F";" '{ for (i = 2; i <= NF; i++) { printf("%s;%s\n", $1, $i); } }' file

我们将(字段分隔符)awk -F";"设置为。然后,对于每一行(记录),我们从字段 2 开始到最后一个字段 ( ):并打印字段 1 和当前字段 ( )。FS;NFfor (i = 2; i <= NF; i++)$i

相关内容