Perl 전문가 - 내 문제를 해결하기위한 시도가 많은 코드로 바뀌고 있습니다. PERL에서이 문제가 올바르게 처리되고있는 것처럼 보입니다. 여기 내 문제는 다음과 같습니다.Perl 텍스트 구문 분석 - 고정 된 구분 구조가 변경됨
나는 열 데이터 사이에 공백을 가변적으로 가질 수있는 텍스트 블록을 가지고 있습니다 (아래 예 참조). 간단한 분할을 사용했지만 문제는 이제 "코드"열에 데이터의 공백이 포함되어 있다는 것입니다 (마지막 열의 데이터 만 차지함). 상수가되는 것 (비록 내가 소스 구조에 접근 할 수 없거나 소스 구조를 제어 할 수 없지만)은 컬럼 사이에 최소 3 칸 (어쩌면 더 많을 수도 있지만 결코 적지 않을 수 있음)이라는 것입니다.
그래서 열 구분 기호 토큰이 "3 공백"이라고 가정하고 각각의 데이터를 내 실제 기둥 형 데이터로 잘라 내고 싶습니다.
COL0 COL1 COL2 COL3 COL4 COL5
- 4 0.2 1 416489 463455 554
1 0.9 1 E1
0 3 1.4 14 E97-TEST 1
- 1 97.5 396 PASS Good
저는 6 개의 변수로 값을 가져 오려고합니다.
참고 : COL0에는 값이 없을 수 있습니다. COL4는 데이터 공간을 포함 할 수 있습니다. COL5에는 값이 없거나 공백이있는 데이터가 포함될 수 있습니다. 고정 된 서식은 공백 (탭이나 다른 특수 문자 없음)으로 완료됩니다. 명확하게하기 위해 - 열의 크기가 일정하지 않습니다. 한 파일은 COL4를 13 자로하고, 다른 파일은 COL4를 21 자 너비로 가질 수 있습니다. 그렇지 않으면 다른 SO 회원이 진술 한 것처럼 엄격하지 않습니다.
컬럼은 각 행 사이에 다른 오프셋에서 시작할 수? E..g. row1은'| 1 2 3 |'(3 칸)이고 row2는'| 11111 2 3''(또한 3 칸이지만 두 번째 열은 행 2의 첫 번째 값이 너무 넓기 때문에 첫 번째 행보다 큰 오프셋 4로 시작 함) – DVK
아니요, 열 사이징은 각 행당 파일. 파일을 구별 할 수 있지만 파일 내에서 일관성이 있습니다. – Walinmichi
열 머리글이 실제로 있습니까? – Svante