gpt4 book ai didi

linux - 用一个逗号替换多个逗号 - linux 命令

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:51:46 26 4
gpt4 key购买 nike

这是我的 google csv 联系人(包含超过 1000 个联系人)的输出:

A-Tech Computers Hardware,A-Tech Computers,,Hardware,,,,,,,,,,,,,,,,,,,,Low,,,* My Contacts,,,,,,,,,Home,+38733236313,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,

我需要一个 linux cli 命令来用单个逗号替换重复的逗号,所以我得到了这个:

A-Tech Computers Hardware,A-Tech Computers,Hardware,Low,* My Contacts,Home,+38733236313,

我通常在notepad++中做的是将“,,”替换为“,”六次。

我试过:

cat googlecontacts.txt | sed -e 's/,,/,/g' -e 's/,,/,/g' -e 's/,,/,/g'  -e 's/,,/,/g' -e 's/,,/,/g' -e 's/,,/,/g' > google.txt

但是没用...但是,当我在较小的文件(两行)上尝试时,它起作用了……:(

请帮忙!

最佳答案

假设你的线路在修改后仍然合规(不是问题的关注点)

sed 's/,\{2,\}/,/g' googlecontacts.txt > google.txt
  • 它替换任何大于 1 的 ,按单,线上任何地方
  • , 之间的任意空格被认为是正确的字段,因此未修改

在您的命令中,您需要递归更改字符,而不是重复执行多次相同的操作(总有可能发生严重错误),像这样

cat googlecontacts.txt | sed ':a
# make your change
s/,,/,/g
# if change occur, retry once again by returning to line :a
t a' > google.txt

关于linux - 用一个逗号替换多个逗号 - linux 命令,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31400614/

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