Sed和正则表达式

时间:2012-04-28 17:16:17

标签: regex linux sed

我遇到了这个问题:我有一个包含以下格式的数据的CSV文件:

100,30,1.704,,7
101,,suka,,5

我应该在mysql表中导入这个CSV

如您所见,此csv具有空字段,用双逗号','表示。我想使用sed和正则表达式,定义模式 ,, ,如果匹配,则将其替换为我的csv文件中的数字 58 。 任何人都可以帮助我,我不会很好地使用正则表达式。

4 个答案:

答案 0 :(得分:3)

这可能对您有用:

sed ':a;s/,,/,58,/g;ta' file

答案 1 :(得分:1)

这样的事情应该可以解决问题:

sed -e 's/,,/,58,/g'

将搜索('s')或',,'并将其替换为',58',用于所有出现('g';而不是仅出现第一次出现)

答案 2 :(得分:0)

在Vi编辑器中,转到命令模式并键入以下内容:

:%s/,,/,58,/g

答案 3 :(得分:-1)

如果您需要正则表达式选项,可以尝试使用notepad ++。打开搜索和替换将搜索模式设置为“正则表达式”,将,,替换为,58。我刚刚尝试了它,它可以... ,,,,,,,,,58,58,58,58