2017-09-21 20 views
0

다음 내 로그 파일의 레이아웃이 될 때 :가 어떻게 데이터베이스에 대한 데이터베이스 또는 적합한 형식으로 내 .LOG 파일을받을 수 있나요

08/30 06:30:40 0000:00:04 T992 **** 01865888888 860444   ST992         101 T1011    1865888888   Y1016969 A            
08/30 06:35:09 0000:00:03 T992 **** 01865888888    E          101 T1011    1865888888   G1013976 A            
08/30 06:36:50 0000:00:03 T992 **** 01865888888    E          101 T1011    1865888888   W1017933 A            
08/30 06:48:34 0000:00:16 516332 **** 516330     I 516330        101 

을 나는 그래서 쉽게 가져올 수 있습니다 균등하게 열을 표시 할 방법 데이터를 데이터베이스에 저장합니다.

내가 필요로하는 열이 일치하지 않는 여전히 여러 공백을 제거하고 쉼표를 대신 삽입하는 창문 SED을 시도했지만 모든 예를 인라인 할 수의 (101) 및 모든 날짜는 인라인 등

사람이 될 수 있습니다 도움?

+0

,"\<field number>"

와 결과를 얻을 공간을 추가 (.{<number>}) 에 넣어 열 수를 계산' –

답변

0

자, 내가 당신을 위해 그것을 시작 :

sed -r 's/(.{5}) (.{8}) (.{10}) (.{6})/"\1","\2","\3","\4"/' 

이는 처음 4 개 필드를 추출합니다. 다음 당신은 sed`, 당신이 원하는`싶지 않아 내 테스트

echo "08/30 06:48:34 0000:00:16 516332 **** 516330     I 516330 " | sed -r 's/(.{5}) (.{8}) (.{10}) (.{6})/"\1","\2","\3","\4"/' 
+0

브릴리언트 대답을 cut' , 그리고 이것이 내 문제를 해결했다고 믿습니다 (여전히 지금 당장 그것에 노력하고 있습니다). 내 질문에 신이 얼마나 빨리 대답했는지 놀랐다. 이걸 보면서 고마워. 나는이 소원을 해결하기 위해 많은 일들을 시도해 보았고, 나는 빨리 도움을 요청했다. :-) – nomishuk

+0

11 자리 숫자 다음에 1 자리 숫자와 11 자리 숫자가있는 두 번째 줄이있는 맨 위 행에서 어떻게 운동합니까? 왜냐하면 내가 사용하고있는 SED 명령은 단지 1 문자 밖에 가지고 있지 않기 때문에 .......... 08/30,06 : 17 : 48,0000 : 00 : 36, T992, 0001 01865868888 8688888 ST992 101 T1011 1865868888 Y1014798 A 08/30,06 : 17 : 48,0000 : 00 : 36, T992, 1 01865868888 – nomishuk

+0

우. 오카이. 어떻게 빨리 펄 또는 PHP 스크립트에 대한 생각 :-) –