我目前正在尝试从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
如您所见,“电子邮件”和“电话号码”消失了
答案 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);