1

次のような形式のテキスト ファイルがあります。

Description1:        Data-123<br>
Description2:        Data-ABC<br>
Description3:        Data-789<br>
Description4:        Data-EFG<br>
Description5:        Data-XYZ<br>

Description1:        Data-123<br>
Description2:        Data-ABC<br>
Description3:        Data-789<br>
Description4:        Data-EFG<br>
Description5:        Data-XYZ<br>

Description1:        Data-123<br>
Description2:        Data-ABC<br>
Description3:        Data-789<br>
Description4:        Data-EFG<br>
Description5:        Data-584<br>

各グループ (5 行のデータ) を全体として比較し、重複するグループを削除して、一意のデータ グループのみを残すには、PowerShell が必要です。以下のコードを使用して単一の重複行を削除することはできますが、各グループを比較することはできません。

get-content TextFile.txt | sort-object | get-unique > NewTextFile.txt
4

2 に答える 2

0

ファイルの内容を 2 つの改行文字 (空行の直前の行末とその直後の空行に一致する必要があります) で分割し、返された各オブジェクトを分割 (空行を削除) してから結合し直し、新しい行を追加します。結果を新しいファイルに書き込みます。

(Get-Content TextFile.txt | Out-String) -split "`r`n`r`n" | ForEach-Object{
    ($_.Split("`r`n",[System.StringSplitOptions]::RemoveEmptyEntries) -join "`r`n") + "`n"
} | Select-Object -Unique | Out-File NewTextFile.txt
于 2013-06-01T08:50:00.060 に答える
0

多分これはうまくいくかもしれません.コードの最後の行の結果に基づいて出力ファイルを作成する必要があります.

$a = gc mylist.txt

$b = [string]::Empty
$c = @()

$a | % {if ( $_ -ne [string]::Empty ) 
            { $b += "$_`n"  } 
        else 
            { $c += $b
              $b = [string]::Empty 
            }   
}    
$c += $b    
$c | select -Unique | out-file .\mynew.txt
于 2013-05-31T19:48:07.857 に答える