스페이스로만 구분된 불규칙한 열을 갖는 자료를 일정한 서식으로 재 정렬하는 방법?
글쓴이: foruses / 작성시간: 금, 2007/05/04 - 10:51오전
소수점 자리수가 재 각각인 몇 개의 열로 이루어진 자료를 일정한 서식, 가령 10f10.5 로 재정렬 가능한 방법이 있는지요.
데이터가 하나의 열로 되어 있다면 포트란에서 read(10,*)으로라도 읽을 수 있을텐데, 여러개의 열로 이루어져 있어서 그렇게 할 수도 없군요.
열 끼리는 한개의 스페이스로 구분 되어 있습니다.
포트란에서 읽어 들이기는 불가능해 보이고, 리눅스 명령어나 쉘 스크립트로 해결 가능할까요?
감사합니다.
Forums:
awk 으로 해결 가능?
언뜻, awk로 컬럼을 자르고 파일로 저장하는 과정에서, 부동소수점 자리수의 형식을 지정해 줄 수 있으면 될 거 같은데요.
가능한가요?
그리고나서 자른 컬럼들을 붙이기만 하면 되니까요.
열 수가 일정하다면
열 수가 일정하다면 cut으로 분리하시고 서식을 조정하신 후 paste로 다시 합치시는 수도 있긴 합니다.
그리고 awk에도
그리고 awk에도 printf기능이 있는데 혹시 awk로 해결이 가능하지도 않을까요..? ^^;
awk에서 하신다면,
awk에서 하신다면, printf를 써도 물론 될테구요, 모든 숫자를 똑같은
포맷으로 출력하시는 것이니 OFMT = "%10.5f" 같은 식으로 출력 포맷을
설정해 주시는 방법도 있겠네요.
약간 편법을 썼습니다만.. 이런 결과를 원하시는 건가요?
====
No one asks you for change or directions.
-- Slo-Mo, J. Krokidas
====
No one asks you for change or directions.
-- Slo-Mo, J. Krokidas
엑셀의 매크로(VBA)를 쓰는 것은 어떨까요
그냥 변환하는 것이 목적이고, 엑셀을 사용해도 된다면, 엑셀용 VBA 매크로를 이용하는 것도 한 방법이 될 것 같은데요.
엑셀에서 '도구-새 매크로 기록'을 사용해서 원하는 것과 유사한 작업을 한 다음, '기록 중지' 하면 일단 엑셀용 Visual Basic 코드가 작성됩니다. 이후 여기에 반복 문이나 조건문 추가 등의 약간의 손질을 더하면 간단한 작업은 엑셀로 처리할 수 있습니다. (도움말을 참고하면 입, 출력 파일 이름을 받아 들여서, 입력 파일 로드, 변환 및 저장 등의 일도 한번에 수행하는 매크로를 작성할 수도 있습니다.)
오픈 오피스의 스프레드 시트 소프트웨어도 아마 java script 같은 것으로 비슷한 매크로 기능을 제공했던 것으로 기억합니다만, 그것은 써 보지 않아 뭐라 말씀은 못 드리겠네요.
댓글 달기