У меня есть большой файл CSV, который мне нужен, чтобы удалить первый столбец данных. Я не могу открыть его в Excel, потому что Excel преобразует некоторые значения в столбцах в научные числа.
Я использую Notepad ++ , и я пытаюсь заштриховать первый столбец из файла EXE,
1,Value1,value2,value3,value4,value5
3445,Value1,value2,value3,value4,value5
12345,Value1,value2,value3,value4,value5
1234,Value1,value2,value3,value4,value5
11,Value1,value2,value3,value4,value5
выглядеть как
Value1,value2,value3,value4,value5
Value1,value2,value3,value4,value5
Value1,value2,value3,value4,value5
Value1,value2,value3,value4,value5
Value1,value2,value3,value4,value5
источник
^[^,]+,
и не заменить на пустой?Нажмите Ctrl+ Hи выполните следующую замену:
Теперь нажмите Alt+, Aчтобы заменить все вхождения.
Как это устроено
Регулярное выражение
.*?,(.*)
соответствует целой строке:.*?,
соответствует всему до первой запятой, включая саму запятую..*
означает любое количество вхождений любого символа, а вопросительный знак делает квантификатор ленивым , т. е. соответствует как можно меньшему числу символов.(.*)
соответствует всему после первой запятой.Заключение
.*
в круглые скобки преобразует его в подшаблон, поэтому доступ к мачте можно получить в поле замены.\1
представляет первый субматч (соответствует(.*)
).В результате Notepad ++ заменяет строку всем, что следует за первой запятой.
источник
^[^,]+,
глобальная замена на пустую строку не будет работать в Notepad ++. (+1)В Windows вы можете сделать это следующим образом.
Я предположил, что у вас есть только 6 столбцов. Если у вас есть еще много столбцов, попробуйте поэкспериментировать с * в поле токенов. Идея взята из Windows для команды
источник
for /F "tokens=1* delims=," %i in (Input.csv) do @echo %j >> output.csv
Предполагая, что у вас есть система Linux или какая-то среда в стиле Unix (мне нравится gow , или вы можете отключить утилиты от unixutils ), я считаю, что запуск файла через
cut -d , -f2-6
должен сделать трюк - он должен, если я правильно помню, сделает трюк --d
устанавливает разделитель иf2-6
печатает со второго по шестой символ.cat input.csv | cut -d , -f2-6 > output.csv
сделал бы трюк, принимая входной файл и выбивая выходной файл. Он не использует блокнот, но быстрый и очень простой.источник
Вы должны быть в состоянии загрузить CSV в Excel и сделать так, чтобы числа воспринимались как текст (не позволяя преобразовать их в научные числа).
источник
Notepad ++ имеет встроенное редактирование столбцов и команду Line Up by (,) (плагин TextFX), дающую графическое решение «укажи и щелкни», которое, скорее всего, будет правильным в первый раз. Это избавляет от необходимости использовать регулярные выражения или программирование оболочки, которые обычно требуют некоторой отладки, пока они не сделают именно то, что вы хотите, и ничего более.
Начальная точка : CSV-файл со смещенными столбцами, поэтому его нелегко редактировать по столбцам ...
Процедура:
Выберите интересующие строки - возможно, весь файл.
Используйте команду меню TextFX> TextFX Edit> Line Up Multiple Lines by Comma (,) Это выравнивает все строки по столбцам и упрощает редактирование столбцов.
Войдите в режим столбцов в столбце после первой запятой (,). Для небольшого количества строк используйте команды клавиатуры: Alt + Shift + DownArrow.
Если вам нужно работать со многими строками (большой файл), используйте Alt + мышь и щелкните по нужному столбцу первой строки, затем перейдите к последней строке файла и Alt + Shift + щелкните по той же позиции столбца. Это активирует режим столбцов для всего файла - вы должны увидеть вертикальную линию за всеми запятыми.
Удалить в режиме столбца удаляет весь столбец символов. Таким образом, вы можете удалить все до первой запятой во всех строках сразу, чтобы получить:
Выполнено!
Замечание по этому решению по сравнению с различными другими, предложенными до сих пор:
Редактирование в режиме колонки является довольно мощным и, в сочетании с опциями плагина TextFX, применяется к различным ситуациям простым и быстрым способом.
Например, если вы решили быстро удалить 2-й столбец или N-й столбец, этот подход работает практически без изменений.
Регулярные выражения, сценарии оболочки, с другой стороны, достигнут цели, да, но в сложных задачах вы будете тратить больше времени на «устранение ошибок» в синтаксисе.
Универсальные встроенные функциональные возможности Notepad ++ - это одна из его сильных сторон: вы получаете достаточно энергии, не прибегая к «программированию».
источник
Если вы знакомы с плагином консоли Python для Notepad ++, я могу посоветовать вам другой метод. Вам нужно добавить свой текст в документ Notepad ++ и выполнить следующий скрипт в консоли:
Этот скрипт добавил текст результата в ваш текущий документ Notepad ++.
источник
Запустить
vim
(в командном режиме, если нет, нажать Escape).Введите следующую команду, чтобы сопоставить действие удаления первого столбца с
q
ключом:Что значит:
0
- перейти к началу строкиdf,
- d далить все до , характер ( в том числе запятой),j
- спуститься на одну строку0
- перейти к началу строкиЗатем примените это действие ко всем строкам:
Это означает, что запустите действие, назначенное клавише,
q
от строки начало (0) до конца ($).источник
:%s/^[^,]\+,//g
?