ASCII 파일에서 열 정렬


12

나는 그의 텍스트 파일을 가지고 있습니다 :

#c1     c2              c3              c4              c5              c6      c7      c8      c9      c10     c11     c12     c13
4599    995,274 2523,658        264,1417170     -33,6000        -0,3600 0,0202  0,0069  0,0227  10,1041 0,0169  0,2817  0,0239
6173    1552,290        1595,696        264,0603912     -33,4880        0,4374  0,0287  1,8123  0,0385  10,1289 0,0292  2,8445  0,0366
6456    1658,630        1529,292        264,0449377     -33,4800        0,0109  0,0234  1,0955  0,0296  10,5032 0,0223  1,7168  0,0293
8932    2750,029        1374,395        263,8866195     -33,4615        -0,3185 0,0249  0,9196  0,0302  10,5858 0,0221  1,3886  0,0296
4095    820,716 495,315 264,1658451     -33,3546        -0,4388 0,0216  0,6497  0,0252  10,6026 0,0188  1,1796  0,0258
4737    1045,289        1395,983        264,1338240     -33,4636        0,5900  0,0231  0,8853  0,0273  10,6501 0,0204  1,1661  0,0270

즉 : 특정 임의의 줄에 정렬되지 않습니다 (파일 길이는 ~ 10000 줄입니다) 다음과 같이 표시해야합니다.

#c1     c2              c3              c4              c5              c6      c7      c8      c9      c10     c11     c12     c13
4599    995,274         2523,658        264,1417170     -33,6000        -0,3600 0,0202  0,0069  0,0227  10,1041 0,0169  0,2817  0,0239
6173    1552,290        1595,696        264,0603912     -33,4880        0,4374  0,0287  1,8123  0,0385  10,1289 0,0292  2,8445  0,0366
6456    1658,630        1529,292        264,0449377     -33,4800        0,0109  0,0234  1,0955  0,0296  10,5032 0,0223  1,7168  0,0293
8932    2750,029        1374,395        263,8866195     -33,4615        -0,3185 0,0249  0,9196  0,0302  10,5858 0,0221  1,3886  0,0296
4095    820,716         495,315         264,1658451     -33,3546        -0,4388 0,0216  0,6497  0,0252  10,6026 0,0188  1,1796  0,0258
4737    1045,289        1395,983        264,1338240     -33,4636        0,5900  0,0231  0,8853  0,0273  10,6501 0,0204  1,1661  0,0270

그래서 기본적으로 파일의 열을 자동으로 정렬하는 스크립트 / 명령 줄 유틸리티를 찾고 있습니다.

답변:


12

에서 이것을 시도하십시오 :

테스트하려면 STDOUT:

column -t file.txt

파일을 수정하려면

column -t file.txt > new_file.txt && mv new_file.txt file.txt

보시다시피, 그게 전부입니다. 복잡한 printf트릭 으로 재생하는 데 많은 시간을 절약합니다 .


이 명령은 아무 작업도 수행하지 않았으며 터미널에 파일을 표시하고 종료했습니다. 내가 여기서 무엇을 놓치고 있습니까?
가브리엘

어떤 OS를 사용하고 있습니까? (원래 POST에 넣어)
질 Quenot에게

우분투 12.10을 사용하고 있습니다.
가브리엘

다시 시도했지만 아무것도 없습니다. 해당 명령이 원본 파일을 수정하거나 새로 정렬 된 파일을 작성해야합니까?
가브리엘

편집에 파일의 올바른 위치를 내 편집을 참조하십시오 (내 이전 버전은 터미널에 표시했다)
질 Quenot

3

적절한 이름의 열 도구를 찾고 있습니다.

원하는 데이터를 다음과 같이 열에 파이프해야합니다.

cat yourfile | column -s " " -t

-s로 구분자를 정의하십시오.

-s " "

colume에게 -t로 테이블을 만들도록 지시하십시오.


이것은 무엇을 "some data\nfoo bar"의미합니까?
가브리엘

즉 영업 이익은 질문 게 아니에요)
질 Quenot에게

@ sputnick, 나는 그것을 고쳤다. 미안
Silverrocker
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.