gpt4 book ai didi

regex - 替换csv中的错误行

转载 作者:太空狗 更新时间:2023-10-29 12:28:11 25 4
gpt4 key购买 nike

我有一个这样的 csv 文件:

0;test1;description;toto
1;test2;description;tata
2;test3;desc
ription;tutu
3;test4;description;tete

在 shell 中,我想替换所有不以数字开头的行。在这个例子中,我想用 ription 替换\nription

我没有用 sed、grep 找到正确的表达式...:(

我想要这个结果:

0;test1;description;toto
1;test2;description;tata
2;test3;description;tutu
3;test4;description;tete

非常感谢

编辑 1:我尝试过这样的事情:

LC_ALL=C tr '(\n)[0-9]' ' ' < hotels.csv > test.csv

或者这个:

sed ':a;N;$!ba;s/\r\n?![0-ç-9]/ /g' hotels.csv 

但我认为我的正则表达式是错误的,它不起作用:(

最佳答案

使用 awk 这似乎是可行的:

awk -F ';' '{if (NR>1  && match($1,/^[0-9]+$/)) printf("\n"); printf("%s",$0);} END{printf("\n")}' infile.csv

它的作用:

  • 从第二行开始:检查第一个字段是否为数字并打印换行符
  • 在任何行中:打印整行 ($0),不带尾随换行符

输出发送到STDOUT,输入来自infile.csv

编辑:抱歉,我错过了复制比赛(...)

关于regex - 替换csv中的错误行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35601129/

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