web-dev-qa-db-ja.com

カンマ区切りのリストを適切なCSV形式にする方法

たとえば、「friend1 @ example.xyz、friend2 @ example.xyz、friend3 @ example.xyz」など、カンマで区切られたメールアドレスのリストがあります。

ただし、適切なCSV形式に変換する必要があります。スペースを入れ替えると思います。

しかし、これはどのように行うことができますか? 'search and replace'を正規表現コマンドで使用する必要がありますか?もしそうなら、どのように?

前もって感謝します

1
mravec

ファイルにコンマの後のスペース文字以外のスペース文字が含まれていない場合、検索と置換で正規表現を使用する必要はありません。 置換...ダイアログを開き、検索対象にスペース文字を入力するだけです:ボックスを開き、Replace with:ボックスに何も入っていないことを確認します。

ファイルの名前を.csvに変更していない場合は、名前を変更してください。 Windowsエクスプローラーで既知のファイルタイプの拡張子を非表示にする(デフォルト)場合は、新しいファイル拡張子でファイルを再保存する必要があります。 Windowsエクスプローラの設定を無効にするか、コマンドラインからファイルの名前を変更します。

0
Laage

CSVファイル形式は存在しても完全に標準化されていません RFC418
(この標準はテキストベースのフィールドの処理のみを指定します)。

RFC418 要件:

  • (CR/LF)文字で終わるMS-DOSスタイルの行(最後の行ではオプション)。
  • オプションのヘッダーレコード(存在するかどうかを検出する確実な方法がないため、インポートするときは注意が必要です)。
  • 各レコードには、同じ数のコンマ区切りのフィールドが含まれている必要があります。
  • 任意のフィールドを引用符で囲むことができます(二重引用符で囲みます)。
  • 改行、二重引用符、またはコンマを含むフィールドは引用符で囲む必要があります。 (そうでない場合、ファイルを正しく処理できない可能性があります)。
  • フィールド内の(二重)引用符は、2つの(二重)引用符で表す必要があります。

あなたの質問に戻る:

たとえば、メールアドレスのコンマ区切りのリストがあります
_[email protected], [email protected], [email protected]_

ただし、適切なCSV形式に変換する必要があります。スペースを入れ替えると、

スペースを削除するには:

  • 押す Ctrl+H
  • フィールドに_Find what_と入力します_[ \t]+_
  • フィールド_Replace with_は空である必要があります。
  • _Search mode_セクションでラジオボタンを_regular expression_に切り替えます
    そしてボタンを押す Replace All

スペースからテキストをクリアするときは、列データを引用符で囲むことができます。

  • 押す Ctrl+H
  • フィールドに_Find what_と入力します_([^,\r\n]+)_
  • フィールドに_Replace with_ type _\"\1\"_
  • _Search mode_セクションでラジオボタンを_regular expression_に切り替えます
    そしてボタンを押す Replace All

注:これ(引用符で囲まれたデータを囲む)は、DOS/Windows形式で保存されたテキストに適用されます。Linuxからデータを処理する場合は、_\r_フォーム_Find what_フィールド。

3
Alex