更改CSV文件的列值

时间:2014-10-14 13:20:50

标签: sql regex csv

我一直试图通过搜索来做到这一点但失败了。你们会这么善良并帮我解决这个问题吗?

我有一个包含十几列和几千行的CSV文件。问题是由于最近的更改,其中一个列值(等级)已被弃用。

过去有4个“等级”,现在他们将等级提高到5,重新安排它们之间的数据。

我正在尝试找到一种方法来使用正则表达式(或者可能是另一种方法)来匹配从更新的表中提取的字符(在与旧CSV顺序不匹配的订单上)与旧的表格,如果它们相同,请更改成绩列的值。

例如:

(旧档案)

Character  Grade
  Y,          4       
  X,          4
  Foo,        2
  Bar,        0

(新档案)

Character  Grade
  Y,         5
  X,         4
  Foo,       2
  Bar,       1

我的想法是使用条件匹配来自new的字符与旧字符匹配,如果它们相同,则更改旧文件的等级值以匹配更新的字符。

1 个答案:

答案 0 :(得分:0)

在这里使用正则表达式不是很有效但是这里有一个模式

^(\s*([^,]*),\s*)\d+(?=.*?new file.*?\2,\s*(\d+))  

Demo

您最好使用Excel的内置函数VLOOKUP

enter image description here