무식하면 몸이 고생한다더니

오늘 정말 무식하면 몸이 고생한다는 말을 실감했습니다.

제가 하려고 했던 일은 file1, file2를 갖고 file3를 만드는 일이었습니다.

> head -5 file1
1 2.01752995823
2 2.06194181018
3 4.28035407461
4 3.77474518742
5 4.50046944562

> head -5 file2
1  1.81027577206
2  2.71177691321
3  4.4118739833
4  3.94501332355
5  5.48713932199

> head -5 file3
1 2.01752995823  1.81027577206
2 2.06194181018  2.71177691321
3 4.28035407461  4.4118739833
4 3.77474518742  3.94501332355
5 4.50046944562  5.48713932199

이렇게 하기 위해 파일을 Notepad++로 붙여넣고 alt키 눌러서 file2의 2번째 column을 가져다 file1에 붙였지요.

하지만, 조금만 생각해보면 UNIX에서 저런 게 안 될리가 없지요. 
  • 그래서 옛날 기억을 되살려보니 cut을 찾아봤더군요. UNIX - cut
  • 거기다 paste도 찾아봤어요. UNIX - paste
이 둘을 알면 이제 위의 일을 쉽게 할 수 있지요.

>cut -c 3- file2 > file2a
>paste -d ' ' file1 file2a > file3
>head -5 file3
1 2.01752995823    1.81027577206
2 2.06194181018    2.71177691321
3 4.28035407461    4.4118739833
4 3.77474518742    3.94501332355
5 4.50046944562    5.48713932199

앞으로는 좀 더 찾아보고 효율적으로 일해야겠습니다- _-;

덧글

  • sac 2011/05/29 21:25 #

    join 하시면 더 빠릅니다.
    > join file1 file2 > file3

    물론 두 file의 row가 같은 경우가 아니면 에러를 뿜습니다.
  • wolga 2011/05/29 21:59 #

    감사합니다, 해봤더니 말씀하신 것과 같군요:)
※ 로그인 사용자만 덧글을 남길 수 있습니다.