gpt4 book ai didi

regex - 如何加入文件中的前n行

转载 作者:IT王子 更新时间:2023-10-29 00:17:00 25 4
gpt4 key购买 nike

我正在尝试清理一些数据,最终我想将其放入 CSV 格式。

我已经使用了一些正则表达式来清理它,但我卡在了一步上。

我想用逗号替换除每隔三个换行符 (\n) 之外的所有内容。

数据如下所示:

field1
field2
field3
field1
field2
field3

等..

我需要它

field1,field2,field3
field1,field2,field3

谁有使用 sed 或 awk 的简单方法?我可以编写一个程序并使用带有模数计数器的循环来删除第一个和第二个换行符,但如果可能的话我宁愿从命令行执行此操作。

最佳答案

使用 awk:

awk '{n2=n1;n1=n;n=$0;if(NR%3==0){printf"%s,%s,%s\n",n2,n1,n}}' yourData.txt

此脚本保存最后三行并每隔三行打印一次。不幸的是,这仅适用于具有 3 行的倍数的文件。

一个更通用的脚本是:

awk '{l=l$0;if(NR%3==0){print l;l=""}else{l=l","}}END{if(l!=""){print substr(l,1,length(l)-1)}}' yourData.txt

在这种情况下,最后三行连接成一个字符串,只要行号不是 3 的倍数,就会插入逗号分隔符。在文件末尾,如果字符串不为空,则打印该字符串删除尾随逗号。

关于regex - 如何加入文件中的前n行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/640406/

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