Linux 에서 텍스트 파일을 관리하고 조작하는 것은 일반적인 작업입니다. 이를 위한 두 가지 강력한 유틸리티는 join과 split입니다. join 명령어는 공통 필드를 기반으로 두 파일의 줄을 병합하고, split은 큰 파일을 더 작고 관리하기 쉬운 조각으로 나눕니다.
공통 필드를 기준으로 파일 결합하기
join 명령어는 linux join files를 수행해야 할 때 기본적인 도구입니다. 기본적으로 이 명령어는 정렬된 두 파일의 줄을 동일한 첫 번째 필드를 기준으로 결합합니다.
예를 들어, 병합하려는 두 개의 파일이 있다고 가정해 보겠습니다.
file1.txt
1 John
2 Jane
3 Mary
file2.txt
1 Doe
2 Doe
3 Sue
join 명령어를 사용하면 다음과 같이 쉽게 결합할 수 있습니다.
$ join file1.txt file2.txt
1 John Doe
2 Jane Doe
3 Mary Sue
보시다시피, 파일들은 공통된 첫 번째 필드 (1, 2, 3) 를 사용하여 결합되었습니다. join이 올바르게 작동하려면 두 파일의 조인 필드가 정렬되어 있어야 합니다.
다른 조인 필드 지정하기
공통 필드가 첫 번째 열이 아니라면 어떻게 해야 할까요? join에게 사용할 필드를 알려줄 수 있습니다. 다음 파일들을 고려해 보세요.
file1.txt
John 1
Jane 2
Mary 3
file2.txt
1 Doe
2 Doe
3 Sue
여기서는 file1.txt의 두 번째 필드와 file2.txt의 첫 번째 필드를 기준으로 조인해야 합니다. 명령어는 다음과 같습니다.
$ join -1 2 -2 1 file1.txt file2.txt
1 John Doe
2 Jane Doe
3 Mary Sue
-1 2 플래그는 첫 번째 파일의 두 번째 필드를 지정하고, -2 1 플래그는 두 번째 파일의 첫 번째 필드를 지정합니다.
대용량 파일 분할하기
split 명령어는 결합의 반대 작업을 수행합니다. 즉, 큰 파일을 더 작은 파일로 나눕니다.
split somefile
기본적으로 이 명령어는 1000 줄 제한에 도달하면 somefile을 xaa, xab 등으로 이름 붙여진 새 파일로 분할합니다. -l 플래그를 사용하여 다른 줄 수를 지정하거나 -b 플래그를 사용하여 파일 크기별로 분할하는 등 이 동작을 사용자 지정할 수 있습니다.