3

現在、列内に散発的にある余分なラインフィードをモックアップした、以下のような区切りファイルを作成するシステムがあります。

Column1、Column2、Column3、Column4

Text1、Text2 [LF]、text3 [LF]、text4 [CR] [LF]

Text1、Text2 [LF] [LF]、text3、text4 [CR] [LF]

Text1、Text2、text3 [LF] [LF]、text4 [CR] [LF]

Text1、Text2、text3 [LF]、text4 [LF] [LF] [CR] [LF]

次の正規表現を使用してNotepad++を使用し、有効なキャリッジリターンとラインフィードの組み合わせを無視することで、懸念を引き起こしているラインフィードを削除することができました。

(?<![\r])[\n]

ただし、PowerShellを使用して解決策を見つけることはできません。これは、csvファイルのコンテンツを取得すると、テキストフィールド内の改行が無視され、値がコンテンツに割り当てられた変数に個別のオブジェクトとして格納されるためです。アクション。私の質問は、コマンドレットがデータのロード時に改行を無視する場合、replaceを使用して正規表現をcsvファイルに適用するにはどうすればよいですか?

また、以下の方法を試して、csvのコンテンツをロードしました。これは、-join(get-content)を使用する場合と同様に、1つの長い文字列になるため機能しません。

[STRING]$test = [io.file]::ReadAllLines('C:\CONV\DataOutput.csv')
$test.replace("(?<![\r])[\n]","")
$test | out-file .\DataOutput_2.csv

4

1 に答える 1

3
于 2013-01-11T00:03:23.353 に答える