2016-11-08 1 views
0

은 ASCII 텍스트 파일 test1.txt을 고려 파이프 문자에 -splitPowerShell은

a 
d 

그러나 구분 기호를 |으로 변경하면 출력은 모든하지만 빈입니다

$input -split "`n" | ForEach-Object { 
    $row = $_ -split "|" 
    $row[0] 
} 

: 파워 쉘 스크립트 test2.ps1 다음

a|b|c 
d|e|f 

그리고 : test2.txt 같이 ILS. -split이 실패하는 이유는 무엇입니까?

+0

NB :이 같은 문제없이 동일한 작업을 수행하기위한이 같은 CSV 가져 오기를 사용할 수 있습니다 가져 오기 CSV있는 test1.txt -Delimiter "|" - 헤더 col1, col2, col3 | col1을 선택하십시오. – Esperento57

답변

1

-split 정규 표현식 기대 보인다 따라서 당신은에서와 같이 파이프를 탈출해야합니다

$row = $_ -split "\|" 

또는 리터럴 문자열이나 문자에 분할 할 수있는 SimpleMatch 옵션을 지정

$row = $_ -split "|", 0, "SimpleMatch" 

0은 MaxSubstrings을 나타냅니다. "하위 문자열의 최대 수는 기본적으로 모두 (0)"입니다.

출처 : 또한 http://ss64.com/ps/split.html
: Get-Help about_Split