При попытке отфильтровать строки из CSV-файла у меня возникло странное событие:
У меня есть два .csvs, один из которых содержит большое количество данных, другой содержит идентификаторы (имя в первом столбце основного .csv) строк, которые необходимо удалить из первого файла.
Основной файл выглядит так:
scaffold_1234_ref00001_1234,0,1,NA,0.8...
scaffold_1235_ref00002_12345,1,0.3,NA,1...
Второй выглядит так:
scaffold_1234_ref0001_1234
scaffold_1234_ref_002_1234
Я использовал grep -v -f filter.csv data_to_filter.csv > filtered.csv
, который, похоже, создает выходной файл, в котором отсутствуют необходимые строки, однако в выходном файле их больше, чем ожидалось.
Исходные данные содержат 1 142 936 строк, я пытаюсь удалить 122 788, но 123 036 удаляются в выходном файле (248 - слишком много!).
Я проверил наличие дубликатов в основных данных, используя awk -F, 'a[$1]++{print $1}' data_to_filter.csv
, но это не выявило дублирования.
Есть идеи? Я вроде как новичок в этом!