2

デフォルト以外の異なる引用符とテキスト区切り文字を使用したCSVファイルがあります。区切り文字には別の区切り文字のオプションがあることは知っていますが、引用文字を削除する方法がわかりません。

Import-Csv 'C:\test.txt' -Delimiter "(character U+0014 is used here, won't show here)"

ただし、引用符はU + 00FEであり、特殊文字なしでテキストを取得できるように、これも削除する必要があります。これを新しいファイルに書きたくありません。csvを変数にインポートして、分析を実行できるようにします。たとえば、フィールドが空かどうかを確認します。

何か案は?

4

1 に答える 1

6

区切り文字は実際には問題ではありません。

-Delimiter "$([char]0x14)"

引用符については、前処理ステップを使用してから、次ConvertFrom-の代わりに使用できImport-CSVます。

Get-Content test.txt |
    ForEach-Object { $_ -replace ([char]0xFE) } | # to remove the “quotes”
    ConvertFrom-CSV -Delimiter "$([char]0x14)"

行に引用符が埋め込まれている場合は、もう少し作業が必要であり、すべてのフィールドを強制的に引用するだけの方が簡単です。

$14 = "$([char]0x14)"
$_ -replace ([char]0xFE) -replace '"', '""' -replace "(?<=^|$14)|(?=`$|$14)", '"'
于 2012-09-05T14:09:57.963 に答える