gpt4 book ai didi

linux - 使用 shell 脚本将指定列中的逗号分隔单元格分隔到新行

转载 作者:太空宇宙 更新时间:2023-11-04 04:20:28 24 4
gpt4 key购买 nike

我有一个包含逗号分隔列的表,我想将指定列中的逗号分隔值与新行分隔开。例如,给定的表是

名称开始名称2

A 1,2 X,a

B 5 Y,b

C 6,7,8 Z,c

我需要分隔第 2 列中的逗号分隔值才能得到下表

名称开始名称2

A 1 X,a

A 2 X,a

B 5 Y,b

C 6 Z,c

C 7 Z,c

C 8 Z,c

我想知道是否有任何 shell 脚本的解决方案,以便我可以创建工作流管道。注意:原始表可能包含超过 3 列。

最佳答案

这个 bash 解决方案会产生您想要的输出

{
read header; echo "$header"
while read name start rest; do
for elem in $(tr , " " <<< "$start"); do
echo "$name $elem $rest"
done
done
} << END
Name Start Name2
A 1,2 X,a
B 5 Y,b
C 6,7,8 Z,c
END

比较简洁

awk 'NR==1 {print; next} {split($2,a,/,/); for (i in a) {$2=a[i]; print}}'

关于linux - 使用 shell 脚本将指定列中的逗号分隔单元格分隔到新行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13708689/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com