스페이스로만 구분된 불규칙한 열을 갖는 자료를 일정한 서식으로 재 정렬하는 방법?

foruses의 이미지

소수점 자리수가 재 각각인 몇 개의 열로 이루어진 자료를 일정한 서식, 가령 10f10.5 로 재정렬 가능한 방법이 있는지요.
데이터가 하나의 열로 되어 있다면 포트란에서 read(10,*)으로라도 읽을 수 있을텐데, 여러개의 열로 이루어져 있어서 그렇게 할 수도 없군요.
열 끼리는 한개의 스페이스로 구분 되어 있습니다.

포트란에서 읽어 들이기는 불가능해 보이고, 리눅스 명령어나 쉘 스크립트로 해결 가능할까요?

감사합니다.

foruses의 이미지

언뜻, awk로 컬럼을 자르고 파일로 저장하는 과정에서, 부동소수점 자리수의 형식을 지정해 줄 수 있으면 될 거 같은데요.
가능한가요?
그리고나서 자른 컬럼들을 붙이기만 하면 되니까요.

Prentice의 이미지

열 수가 일정하다면 cut으로 분리하시고 서식을 조정하신 후 paste로 다시 합치시는 수도 있긴 합니다.

Prentice의 이미지

그리고 awk에도 printf기능이 있는데 혹시 awk로 해결이 가능하지도 않을까요..? ^^;

slomo의 이미지

awk에서 하신다면, printf를 써도 물론 될테구요, 모든 숫자를 똑같은
포맷으로 출력하시는 것이니 OFMT = "%10.5f" 같은 식으로 출력 포맷을
설정해 주시는 방법도 있겠네요.

약간 편법을 썼습니다만.. 이런 결과를 원하시는 건가요?

$ cat sample.dat
3.1 3.14 3.141 3.1415
2.7 2.71 2.718
$ awk 'BEGIN {
> OFMT = "%10.5f"; ORS = "";}
> {for(i=1;i<=NF;i++) print strtonum($i); print "\n";}' sample.dat
   3.10000   3.14000   3.14100   3.14150
   2.70000   2.71000   2.71800

====
No one asks you for change or directions.
-- Slo-Mo, J. Krokidas

====
No one asks you for change or directions.
-- Slo-Mo, J. Krokidas

philnet의 이미지

그냥 변환하는 것이 목적이고, 엑셀을 사용해도 된다면, 엑셀용 VBA 매크로를 이용하는 것도 한 방법이 될 것 같은데요.

엑셀에서 '도구-새 매크로 기록'을 사용해서 원하는 것과 유사한 작업을 한 다음, '기록 중지' 하면 일단 엑셀용 Visual Basic 코드가 작성됩니다. 이후 여기에 반복 문이나 조건문 추가 등의 약간의 손질을 더하면 간단한 작업은 엑셀로 처리할 수 있습니다. (도움말을 참고하면 입, 출력 파일 이름을 받아 들여서, 입력 파일 로드, 변환 및 저장 등의 일도 한번에 수행하는 매크로를 작성할 수도 있습니다.)

오픈 오피스의 스프레드 시트 소프트웨어도 아마 java script 같은 것으로 비슷한 매크로 기능을 제공했던 것으로 기억합니다만, 그것은 써 보지 않아 뭐라 말씀은 못 드리겠네요.

댓글 달기

Filtered HTML

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

BBCode

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param>
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

Textile

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • You can use Textile markup to format text.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Markdown

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • Quick Tips:
    • Two or more spaces at a line's end = Line break
    • Double returns = Paragraph
    • *Single asterisks* or _single underscores_ = Emphasis
    • **Double** or __double__ = Strong
    • This is [a link](http://the.link.example.com "The optional title text")
    For complete details on the Markdown syntax, see the Markdown documentation and Markdown Extra documentation for tables, footnotes, and more.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Plain text

  • HTML 태그를 사용할 수 없습니다.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 줄과 단락은 자동으로 분리됩니다.
댓글 첨부 파일
이 댓글에 이미지나 파일을 업로드 합니다.
파일 크기는 8 MB보다 작아야 합니다.
허용할 파일 형식: txt pdf doc xls gif jpg jpeg mp3 png rar zip.
CAPTCHA
이것은 자동으로 스팸을 올리는 것을 막기 위해서 제공됩니다.