【发布时间】:2020-09-04 07:42:00
【问题描述】:
我有一个名为 file1.csv 的 csv 文件:
某事;AD;sss;安道尔;没有;type_1;sss something222;AD;sss222;安道尔;nothing222;type_2;aaa 事物;NL;thing3;荷兰;事物;type_2;bb 等;美国;等;美国;等;type_2;无我想为每个国家/地区创建单独的文件。我做这样的greps:
grep -e "\;AD\;.*\;Andorra\;" file1.csv > fileAD.csv
grep -e "\;NL\;.*\;Netherlands\;" file1.csv > fileNL.csv
grep -e "\;US\;.*\;United\sStates\;" file1.csv > fileUS.csv
这行得通,但我有世界上所有国家。而且我不想为每个国家写这些行。还有其他解决方案吗?任何帮助真的很感激。
编辑:我更新了我的问题。我还有一个 type_1 和 type_2 的列。在创建了每个国家/地区对应的所有文件之后,我需要为每个国家/地区创建只有 type_1 的新文件和只有 type_2 的新文件。
例如,对于安道尔,我需要以下文件:
文件AD.csv:
fileADtype_1.csv:
某事;AD;sss;安道尔;没有;type_1;sssfileADtype_2.csv:
something222;AD;sss222;安道尔;nothing222;type_2;aaa我认为只查找带有缩写的列是可以的,但出于安全原因,我想要两列,一列带有“AD”,另一列带有全名“Andorra”。
【问题讨论】:
-
@Sundeep,谢谢。我更新了我的问题。你的回应有效。我认为这很好,我认为两个国家不能有相同的缩写。我希望这不会发生。我还需要将 fileAD.csv 分解为另外 2 个与类型对应的列的文件。
-
@Savas31 不鼓励更改要求,因为已经给出的答案需要更新..所以,我建议将问题恢复到以前的状态,但添加说明不需要匹配全名.. . 对于您的额外步骤,您应该能够从给出的答案中自己解决
-
@Sundeep,对不起,我没弄清楚这是怎么工作的……我是新来的。谢谢你的澄清。