gpt4 book ai didi

awk - 使用 awk 将每个字符打印为自己的列?

转载 作者:行者123 更新时间:2023-12-01 09:39:22 24 4
gpt4 key购买 nike

我需要重新组织一个大型 CSV 文件。第一列,目前是 6 位数字,需要拆分,使用逗号作为字段分隔符。

例如,我需要这个:

022250,10:50 AM,274,22,50
022255,11:55 AM,275,22,55

变成了这个:
0,2,2,2,5,0,10:50 AM,274,22,50
0,2,2,2,5,5,11:55 AM,275,22,55

让我知道你的想法!

谢谢!

最佳答案

在 perl 中它要短得多:

perl -F, -ane '$,=","; print split("",$F[0]), @F[1..$#F]' <file>

由于您不了解 perl,请快速解释一下。 -F,表示输入字段分隔符是逗号(如 awk)。 -a激活自动拆分(进入数组 @F ), -n将代码隐式包装在 while (<>) { ... } 中循环,它逐行读取输入。 -e表示下一个参数是要运行的脚本。 $,是输出字段分隔符(它以这种方式设置循环的迭代,但是很好)。 split有明显的目的,你可以看到数组是如何索引/切片的。 print ,当作为这样的参数列出时,使用输出字段分隔符并打印它们的所有字段。

在 awk 中:
awk -F, '{n=split($1,a,""); for (i=1;i<=n;i++) {printf("%s,",a[i])}; for (i=2;i<NF;i++) {printf("%s,",$i)}; print $NF}' <file>

关于awk - 使用 awk 将每个字符打印为自己的列?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2596186/

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