У меня есть большой файл CSV (5Go). Заголовок:Удалить строки в CSV-файле с условием столбца в bash
run number,export,downerQ,coefUpQuality,chooseMode,demandF,nbPLots,standarDevPop,nbCitys,whatWord,priceMaxWineF,marketColor,[step],giniIndexReserve,giniIndexPatch,meanQualityTotal,meanQualityMountain,meanQualityPlain,DiffExtCentral,nbcentralPlots,meanPatchByNetwork,sum_q_viti_moutain,sum_q_viti_plaine
"3","false","0.5","0.01","false","7000","10","2","10","0","70","false","0","0","0.07083333333333335","0","0","0","0","0","0","48","0"
"4","false","0.5","0.01","false","7000","10","2","10","0","70","false","0","0","0.04285714285714286","0","0","0","0","0","0","42","0"
"2","false","0.5","0.01","false","7000","10","2","10","0","70","false","0","0","0.05348837209302328","0","0","0","0","0","0","43","0"
Я хотел бы держать только те строки, которые содержат «500» в поле [Стадия] (тринадцатое поле).
- Я попытался импортировать CSV в SQLite ... но удаление аварии ...
- R также аварии (даже с FREAD из data.table)
ли кто-то есть решение с инструментами вроде sed
, awk
или любой другой командой?
Проверьте [csvfix] (https://code.google.com/p/csvfix/). Это, безусловно, может это сделать. В оболочке первым шагом может быть «grep -E», «run number», «500», «», чтобы выбрать строку заголовка и строки, содержащие где-то 500; вы можете свернуть его до 500 в столбце 13 с помощью 'awk'. Или вы можете выполнить всю работу в awk: 'awk -F, 'NR == 1 || $ 13 == "\" 500 \ "" {print} ''(непроверенный, вам может потребоваться установить' OFS' ',' тоже, но, вероятно, нет). –