gpt4 book ai didi

regex - 在特定索引处添加分隔符

转载 作者:行者123 更新时间:2023-12-04 21:55:36 26 4
gpt4 key购买 nike

我想在文件的每一行的某些索引中添加一个分隔符。

我有一个包含数据的文件:

10100100010000
20200200020000

我知道每列的偏移量(2、5 和 9)

使用这个 sed 命令: sed 's/\(.\{2\}\)/&,/;s/\(.\{6\}\)/&,/;s/\(.\{11\}\)/&,/' myFile
我得到预期的输出:
10,100,1000,10000 
20,200,2000,20000

但是有大量的列(~200)和行(300k)真的很慢。

有没有有效的替代方案?

最佳答案

第一个解决方案:使用 GNU awk你可以尝试以下操作:

awk -v OFS="," '{$1=$1}1' FIELDWIDTHS="2 3 4 5"  Input_file

第二种解决方案:使用 sed尝试跟随。
sed 's/\(..\)\(...\)\(....\)\(.....\)/\1,\2,\3,\4/' Input_file

第三种解决方案: awk使用 substr 的解决方案.
awk 'BEGIN{OFS=","} {print substr($0,1,2) OFS substr($0,3,3) OFS substr($0,6,4) OFS substr($0,10,5)}' Input_file

在上面 substr解决方案,我在 substr($0,10,5) 中取了 5 个数字/字符如果您想从第 10 位开始获取所有字符/数字等,请使用 substr($0,10)这将在此处打印其余所有行的字符/数字。

输出如下。
10,100,1000,10000
20,200,2000,20000

关于regex - 在特定索引处添加分隔符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54889752/

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