У меня есть набор из 4 массивных CSV-файлов, которые мне нужно изменить. То, что мне нужно сделать, это совпадение с этим выражением /^(.*),,/
, скопируйте атом, а затем добавьте его к каждой последующей строке, пока атом не будет повторен. Затем мне нужно промыть и повторить до конца файла (каждый файл имеет около 25 тыс. Строк в нем). Наконец, мне нужно вернуться и удалить первый атом.Манипулирование огромными CSV-файлами с помощью sed
Я хотел бы использовать sed для этого, если это возможно. Я попытался сделать это с помощью vim, но не смог правильно получить регулярное выражение. Любая помощь будет принята с благодарностью. Пример показан ниже:
До:
0917,,
,882-1273,1
,95F 9475,1
,276-080,1
,40K 0080,1
,275-690A,1
,TX-2311,3
,TX-3351,4
,B-07432,1
,B-6901,1
,23-753,1
,02F 4307,1
,5.1K QBK-ND,1
,0944-026,1
,0944-027,1
,0944-004,1
,0944-056,1
,0944-057,1
,0944-082,1
,0944-024,1
,0944-025,1
,0944-102,4
,LOR 102,1
0918,,
,CJ1085,1
,1352-152,4
,DMS3102A-18-,1
,6-32 KEP,7
,6-32 X 3/4,4
,6-32X1/2,4
,1251-102,8
,Oct-32,4
,10-32 SAE,8
После:
0917,882-1273,1
0917,95F 9475,1
0917,276-080,1
0917,40K 0080,1
0917,275-690A,1
0917,TX-2311,3
0917,TX-3351,4
0917,B-07432,1
0917,B-6901,1
0917,23-753,1
0917,02F 4307,1
0917,5.1K QBK-ND,1
0917,0944-026,1
0917,0944-027,1
0917,0944-004,1
0917,0944-056,1
0917,0944-057,1
0917,0944-082,1
0917,0944-024,1
0917,0944-025,1
0917,0944-102,4
0917,LOR 102,1
0918,CJ1085,1
0918,1352-152,4
0918,DMS3102A-18-,1
0918,6-32 KEP,7
0918,6-32 X 3/4,4
0918,6-32X1/2,4
0918,1251-102,8
0918,Oct-32,4
0918,10-32 SAE,8
Хороший вопрос!Проблема не слишком широка, у вас есть четкое описание того, что вы пытаетесь сделать, и у вас есть подробный пример ввода и желаемого вывода. Престижность к вам! Я желаю, чтобы более SO пользователи сформулировали свои запросы к этому стандарту. –
Имеет ли этот набор данных когда-либо через Excel? Линия '0918, окт-32,4' выглядит подозрительно для меня. –
Получали ли вы эти данные, вставив таблицу HTML в Excel? В этом случае вам лучше разобрать HTML, а не проходить через этот дополнительный шаг. См. http://search.cpan.org/perldoc/HTML::TableExtract –