从csv文件中特定列下的行中删除值

时间:2018-12-04 08:45:04

标签: c# csv xslt data-manipulation

我目前正在尝试从CSV文件中特定列下的行中删除特定值。

什么是最好的方法?

是在代码中使用XSLT映射文件还是仅通过代码执行此操作? (使用c#)

我想做的是这样:

操作之前:

 id, name, email, phoneNumber, dob 
 1,John Doe,JohnDoe@mail.com,123456789,1988-08-08
 2,Jane Doe,JaneDoe@mail.com,987654321,1987-07-07

操作后:

 id, name, email, phoneNumber, dob 
 1,John Doe,,,1988-08-08 
 2,Jane Doe,,,1987-07-07

如您所见,“电子邮件”和“电话号码”消失了

2 个答案:

答案 0 :(得分:0)

最好的方法很大程度上取决于个人喜好。对我而言,最好的方法是使用sed。假设您的数据在data.csv文件中:

cat data.csv | sed '2,$ s/\([^,]*\),\(.[^,]*\),\(.[^,]*\),\([^,]*\),\([^,]*\)/\1,\2,,,\5/' > output.csv

答案 1 :(得分:0)

您可以使用不带任何库的C#来分隔和联合csv字符串。比使用XLST更容易。作为示例:

 String csv = "1,John Doe,JohnDoe@mail.com,123456789,1988-08-08";
 String[] csvList = csv.Split(',');
 csvList[2] = "";
 csvList[3] = "";
 csv = String.Join(",", csvList);
相关问题