Bash 将csv文件中的逗号替换为mongoimport的sed

Bash 将csv文件中的逗号替换为mongoimport的sed,bash,csv,sed,mongoimport,Bash,Csv,Sed,Mongoimport,我有一个csv文件,我需要用点替换所有逗号。换句话说,我只需要分号作为分隔符,逗号需要替换为点。 我需要这个,以便使用mongoimport导入数据。 我使用了sed命令,但它并不能替换逗号的每一次出现。例如: Zolmitriptan;6 UNITA' 2,5 MG - USO ORALE;N02CC03;33345149;ZOMIG RAPIMELT;"""2,5 MG COMPRESSE ORODISPERSIBILI"" 6 COMPRESSE IN BLISTER";ASTRAZENE

我有一个
csv
文件,我需要用点替换所有逗号。换句话说,我只需要分号作为分隔符,逗号需要替换为点。 我需要这个,以便使用
mongoimport
导入数据。 我使用了sed命令,但它并不能替换逗号的每一次出现。例如:

Zolmitriptan;6 UNITA' 2,5 MG - USO ORALE;N02CC03;33345149;ZOMIG RAPIMELT;"""2,5 MG COMPRESSE ORODISPERSIBILI"" 6 COMPRESSE IN BLISTER";ASTRAZENECA S.P.A.;17,84;20,84;;3,00;FUB
通过
sed的/\,/\./'
,变为:

请注意,只替换了第一个逗号。我做错了什么


有没有办法让mongoimport忽略逗号?(在这种情况下,我不需要更换)

我没有使用全局选项,所以

sed 's/\,/\./g'
他现在正在工作。
然而,对于mongoimport备选方案,问题仍然悬而未决

我没有使用全局选项,所以

sed 's/\,/\./g'
他现在正在工作。 然而,对于mongoimport备选方案,问题仍然悬而未决

这里有一个“sed”命令行。 它将一个文件作为输入,并将数字(0-9)后面的任意数字替换为点

sed -i 's/\([0-9]\),/\1./g' your_file.csv
评论:
  • -i代表“inplace”:文件本身被处理。小心,没有备份
  • sed-i的/blabla/foofoo/g'将用foofoo替换任何blabla的出现。最后一个g选项意味着,如果blabla被多次发现,则在每一行中更换一次以上
  • [0-9]指0到9之间的任何数字
  • ([0-9])括号用于存储逗号前的数字。括号必须转义
  • \1用于调用存储的内容,并在点之前返回结果。它也必须逃脱
例子: 您的_file.csv之前

跟着行跑

sed -i 's/\([0-9]\),/\1./g' your_file.csv
您的_file.csv

下面是一个“sed”命令行。 它将一个文件作为输入,并将数字(0-9)后面的任意数字替换为点

sed -i 's/\([0-9]\),/\1./g' your_file.csv
评论:
  • -i代表“inplace”:文件本身被处理。小心,没有备份
  • sed-i的/blabla/foofoo/g'将用foofoo替换任何blabla的出现。最后一个g选项意味着,如果blabla被多次发现,则在每一行中更换一次以上
  • [0-9]指0到9之间的任何数字
  • ([0-9])括号用于存储逗号前的数字。括号必须转义
  • \1用于调用存储的内容,并在点之前返回结果。它也必须逃脱
例子: 您的_file.csv之前

跟着行跑

sed -i 's/\([0-9]\),/\1./g' your_file.csv
您的_file.csv


两个字符都不需要转义<代码>,在任何时候都不是元字符,
在替换字符串上下文中不是元字符。无需转义任何一个字符
在任何时候都不是元字符,
在替换字符串上下文中不是元字符。我很久以前就解决了这个问题,但我感谢您的完整回答。我不知道-i选项!投票表决!美好的我很久以前就解决了这个问题,但我很感激你的完整回答。我不知道-i选项!投票表决!美好的聪明的举动