jak zrobić listę rozdzielaną przecinkami w odpowiednim formacie CSV

1

Mam listę adresów e-mail oddzielonych przecinkami, na przykład „[email protected], [email protected], [email protected]

Ale musiałbym przekonwertować go do odpowiedniego formatu CSV. Więc zastępuję spacje, zakładam.

Ale jak można to zrobić? Czy muszę używać polecenia „szukaj i zamień” za pomocą poleceń regex? A jeśli tak, to w jaki sposób?

Z góry dziękuję

mravec
źródło
Proszę edytować i dostawa przed i po przykład tekstu.
DavidPostill

Odpowiedzi:

0

Jeśli plik nie zawiera innych spacji niż te po przecinkach, nie ma potrzeby używania wyrażenia regularnego w wyszukiwaniu i zamianie. Możesz po prostu otworzyć okno dialogowe Zamień ... i wprowadzić znak spacji w polu Znajdź: i upewnić się, że w polu Zamień na: nie ma nic .

Zmień nazwę pliku również na .csv, jeśli jeszcze nie jest. Jeśli masz włączone Ukryj rozszerzenia znanych typów plików (Domyślne) w Eksploratorze Windows, musisz albo ponownie zapisać plik z nowym rozszerzeniem; wyłącz ustawienie Eksploratora Windows lub zmień nazwę pliku za pomocą wiersza polecenia.

Laage
źródło
dziękuję !, Myślałem, że potrzebuję wyrażenia regularnego, ale działa również bez :)
mravec
3

Format pliku CSV nie jest w pełni znormalizowany, nawet jeśli istnieje RFC4180
(ten standard określa tylko obsługę pól tekstowych).

Wymagania RFC4180 :

  • Linie w stylu MS-DOS, które kończą się znakami (CR / LF) (opcjonalnie dla ostatniego wiersza).
  • Opcjonalny rekord nagłówka (nie ma pewności, czy można go wykryć, dlatego podczas importowania należy zachować ostrożność).
  • Każdy rekord „powinien” zawierać tę samą liczbę pól oddzielonych przecinkami.
  • Każde pole może być cytowane (z podwójnymi cudzysłowami).
  • Pola zawierające podział wiersza, podwójne cudzysłowy i / lub przecinki powinny być cytowane. (Jeśli nie są, prawdopodobnie poprawne przetworzenie pliku będzie niemożliwe).
  • (Podwójny) znak cudzysłowu w polu musi być reprezentowany przez dwa (podwójne) znaki cudzysłowu.

Powrót do pytania:

Mam na przykład listę adresów e-mail oddzieloną przecinkami
[email protected], [email protected], [email protected]

Ale musiałbym przekonwertować go do odpowiedniego formatu CSV. Więc zastępuję spacje, zakładam

Aby usunąć spacje:

  • Naciśnij Ctrl+ H.
  • W polu Find whattypu[ \t]+
  • Pole Replace withpowinno być puste.
  • W Search modesekcji przełącz przycisk radiowy na regular expression
    i naciśnij przyciskReplace All

Po usunięciu tekstu ze spacji możesz zawrzeć dane kolumn w cudzysłowach:

  • Naciśnij Ctrl+ H.
  • W polu Find whattypu([^,\r\n]+)
  • W polu Replace withtypu\"\1\"
  • W Search modesekcji przełącz przycisk radiowy na regular expression
    i naciśnij przyciskReplace All

Uwaga: to (otaczające dane w cudzysłowie) dotyczy tekstu zapisanego w formacie DOS / Windows, jeśli przetwarzasz dane z Linuksa, usuń pole \rformularza Find what.

Alex
źródło
dziękuję za wyjaśnienie, działa (także bez wyrażenia regularnego) :)
mravec
@mravec Zależy to od czytnika CSV, jeśli byłyby to ustawienia domyślne w programie Excel lub LibreOffice, wybraliby dane kolumn ze spacjami
Alex