bash
스크립트를 사용하여 테이블이 포함 된 HTML을 .csv 파일로 변환하려고합니다.sed 또는 awk를 사용하여 날짜 형식을 수정하십시오.
지금까지 내가 acomplished 한 다음 단계 :
- 함께 (
- 모든 빈 줄을 제거 (
sed 's/[ \t]//g'
으로) 모든 공백과 탭을 제거 - (
dos2unix
와) 유닉스 형식으로 변환sed ':a;N;$!ba;s/\n//g'
) (HTML 파일에 표의 각 셀에 대한 빈 줄이 있기 때문에 필요합니다. 내 잘못이 아닙니다.) - 불필요한
<td>
및<tr>
태그를 제거하십시오 ( - 는
- 은 물론
) sed 's/<\/tr/\n/g'
와 (끝 (end-of-line) (\n
) 문자로 </tr>
교환) sed 's/<\/td/,/g'
로 (','로 </td>
교체), 나는 모든 이러는거야 파이프 라인. 지금까지는 훌륭하게 작동합니다. 마지막 단계는 다음과 같습니다. 테이블에 날짜가 포함 된 열이 있으며이 열의 형식은 dd/mm/yyyy
이며 yyyy-mm-dd
으로 변환하고 싶습니다.
(단순한) 방법 (sed
또는 awk
)이 있습니까?
데이터 샘플 (전체 sed
파이프 후) :
500,2,13/09/2007,30000.00,12,B-1
501,2,15/09/2007,14000.00,8,B-2
가 예상 결과 :이 데이터를 가져올 필요가 있기 때문에
500,2,2007-09-13,30000.00,12,B-1
501,2,2007-09-15,14000.00,8,B-2
나는이 작업을 수행 할 필요가있는 이유는 MySQL에. Excel에서 파일을 열고 형식을 수동으로 변경할 수는 있지만 건너 뛰고 싶습니다.
좋은데,이 경우에는'read'가 _subshell_에서 실행되기 때문에'read' 기반 명령이 작동하지 않습니다; 'echo '08/26/2013 '| {IFS =/읽기 m d y; echo "$ {y} - $ {m} - $ {d}"; }'또는 'IFS =/읽기 m d y <<< '08/26/2013'; echo "$ {y} - $ {m} - $ {d}"' – mklement0
@ mklement0 아, 네 .... 그 작은 부분을 잊어 버렸습니다. 그것은 'ksh'에서 작동 할 것이다. 또 다른 대안으로는'IFS =/read m d y <((echo 08/26/2013)') ('echo'가 서브 쉘에있을지라도) 서브 쉘을 피할 수 있습니다. – twalberg
좋은 점은, 여기서'<<<'가 아마도 가장 효율적 일 것입니다. Bash v4.2 +에서는'shopt -s lastpipe'도 사용할 수 있습니다 (그러나 스크립트에서만). 해결책 중 하나를 사용하여 답변을 업데이트 할 것을 제안 할 수 있습니까? – mklement0