텍스트 파일을 처리하다 보면 데이터 파일의 중간에서 에러가 나는데 이 줄을 확인해보고 싶을 때가 있습니다. 예를 들어 텍스트 파일 전처리를 하고 있는데 데이터 27,354번째 라인에서 무언가 에러가 나면서 전처리 스크립트가 죽어서 27,354번째 줄이 뭔지 확인하고 싶을 수 있습니다.
가장 손쉬운 방법은 에디터로 열어서 27,354번째 줄로 가보는 거죠. 하지만 파일이 수십만에서 수백만 라인이 될 경우 에디터가 매우 힘들어할 수 있습니다. 에디터를 띄우는 것 자체가 번거로울 수도 있고요.
콘솔에서 간편하게 확인하는 방법 중 하나는 head와 tail 명령을 사용하는 겁니다. 기억을 되살려 보자면..
$ head -100 train.txt
이렇게 하면 train.txt 파일의 앞 100줄이 출력이 됩니다.
$ tail -100 train.txt
이렇게 하면 train.txt 파일의 마지막 100줄이 출력이 되고요. 잘 안 쓰지만 유용한 tail의 옵션이 하나 있으니, 바로 +입니다.
$ tail +100 train.txt
이렇게 하면 (마지막 100번째 줄이 아닌) 앞에서 100번째 줄부터 마지막까지 출력이 됩니다.
그렇다면 27,354번째 줄을 보고 싶다면 어떻게 할까요?
$ tail +27354 train.txt | head -1
이렇게 하면 됩니다. tail이 27,354번째부터 마지막까지 출력을 하고, head가 이 중에 첫 번째 줄만 출력을 하기 때문에 정확히 27,354번째 출이 출력이 되죠. 아래와 같이요.
3187366 결론은 동거동락이네요,,내용은 모르겠구..ㅋ 0
하지만 우리는 호기심의 동물이기 때문에 저 줄이 정말 27,354번째 줄인 지 궁금합니다. 원래 내가 짠 코드는 나도 믿을 수 없는 법이니까요 ㅡ.ㅡ 그래서 아래와 같이 해봅니다.
$ nl train.txt | tail +27354 | head -1
27354 3187366 결론은 동거동락이네요,,내용은 모르겠구..ㅋ 0
nl 명령은 각 줄의 앞에 줄번호를 붙여주는 일을 합니다.
특정 줄의 전후에 무엇이 있는지 궁금할 때도 있습니다. 이렇게 tail과 head의 범위를 살짝 조정해주면 됩니다,
$ nl train.txt | tail +27350 | head -10
27350 9753381 클레어 데인즈는 빛났지만 영화는 별로다 0
27351 9660131 저절로 참아지게 되는 영화 0
27352 8881402 마도카 예쁘고 불쌍해ㅜ 1
27353 6176909 유치원생만 좋아할수 있는 내용 0
27354 3187366 결론은 동거동락이네요,,내용은 모르겠구..ㅋ 0
27355 6712240 무시무시한 인재의 제작과정을 깔끔하게 선사하는 범죄물 1
27356 7092635 단순한 퀴어 영화라며 역겨워하는 인간들은 뭐냐? 디카프리오의 랭보 연기는 훌륭했다. 랭보의 삶과 시를 사랑하는 사람이라면 추천. 1
27357 7914595 아동용. CG가 가짜 티 팍팍 나서 실감이 안 나유. 차라리 예전 실물 특수 효과가 더 실감나유. 편하게 컴퓨터 앞에 앉아서 가짜 CG 만들지 말고 실물 특수 효과로 하지. 제대로 된 제목 번역은 다리 여덟개 달린 프릭스네유. 0
27358 8254553 홍콩 느와르는 이미 물건너간지 오래인듯.. 이젠 느낌이 없다.. 0
27359 8871844 90년에 만든 영화치곤 여러가지 면에서 골고루 ㅅㅌㅊ라 본다. 하지만 별하나준다. 왜냐? 심술이다. 0
'Linux' 카테고리의 다른 글
디렉터리 구조를 확인하고 싶을 때 - tree (0) | 2020.05.23 |
---|---|
직전 명령의 마지막 인자 재활용하기 : !$ (0) | 2020.05.06 |
내 컴퓨터와 서버 디렉터리 동기화 - rsync (0) | 2020.05.02 |
특정 포트를 잡고 있는 프로세스 알아내기 (0) | 2020.04.29 |
네트워크를 통해 파일을 빠르게 복사하기: nc 명령어 (3) | 2020.04.26 |