gpt4 book ai didi

awk - 使用awk转换数据格式?

转载 作者:行者123 更新时间:2023-12-01 09:14:10 28 4
gpt4 key购买 nike

有一个文件包含 'n*1' 格式的数据:

1
2
3
4
5
6

有什么方法可以将其转换为 'n*3' 格式,例如:

1,2,3
4,5,6

通过 awk 而不是使用 for 循环 ?

对此一无所知..任何帮助或关键字表示赞赏。

最佳答案

使用 awk

$ awk '{printf "%s%s",$0,(NR%3==0?ORS:",")}' File
1,2,3
4,5,6

命令 printf "%s%s",$0,(NR%3==0?ORS:",") 告诉 awk 打印两个字符串。第一个是 $0,它是当前行。第二个字符串是 NR%3==0?ORS:"," 或者是 ORS 输出记录分隔符(如果行号是三的倍数)或者是 , 用于所有其他行号。

使用 sed

$ sed 'N;N;s/\n/,/g' File
1,2,3
4,5,6

默认情况下,sed 会从文件中逐行读取每一行。 N 告诉 sed 读取另一行,将该行附加到当前行,并用换行符分隔。 N;N 告诉 sed 这样做两次,以便我们在模式空间中总共有三行。 s/\n/,/g 告诉 sed 用逗号替换这两个分隔符换行符。然后打印结果。

以上假设我们使用的是 GNU sed。稍加修改后,它就可以与 BSD/OSX sed 一起使用。

关于awk - 使用awk转换数据格式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49025441/

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