2014-11-11 3 views
-3

읽기 텍스트 파일 데이터 :정렬 번호 문자열

1,26586,0 
1,789,1 
1,5689,0 
2,5895,-2568 
2,5899,5689 
2,548679,-11.485 

다음 결과 분류 : 나는 get-content file txt | sort-object -unique을 시도

1,789,1 
1,5689,0 
1,26586,0 
2,5895,-2568 
2,5899,5689 
2,548679,-11.485 

을,하지만 결과는 다음과 같습니다

1,26586,0 
1,5689,0 
1,789,1 
2,5899,5689 
2,5895,-2568 
2,548679,-11.485 
+0

-1. 원하는 정렬 순서는 무엇입니까? 열 단위 열? – vonPryz

답변

0

먼저 행을 별도의 필드로 분할해야하므로 정렬 루틴이 각 열을 개별적으로 처리 할 수 ​​있습니다. 숫자로 정렬하기를 원하기 때문에 문자열을 실제 숫자로 변환해야합니다.

이 시도 :

Import-Csv 'C:\path\to\your.txt' -Headers 'A','B','C' | 
    select @{n='A';e={[int]$_.A}}, @{n='B';e={[int]$_.B}}, C | 
    sort -Unique A, B 
0

정렬 - 객체는 문자열로 모든 것을 처리합니다.

원하는 것을 얻으려면 입력 문자열의 어떤 부분을 숫자 형식으로 처리할지 명시 적으로 알려주거나 숫자를 0으로하여 의미있는 문자열로 서식을 지정해야합니다.

제로 패딩 문자열 : 개별 번호와 같은

$Lines = Get-Content .\file.txt 
$Lines |Sort-Object -Unique { "{0:D10}{1:D10}{2:F10}" -f $([int[]]($_-split",")) } 

취급 : 가난한 문제 문에 대한

$Lines = Get-Content .\file.txt 
$Lines |Sort-Object -Unique {[int]($_-split",")[0]}, {[int]($_-split",")[1]}, {[double]($_-split",")[2]}