Linux는 분할 명령을 포함하여 텍스트 조작 및 처리를 위한 다양한 명령을 제공합니다. 분할을 사용하면 큰 파일을 작은 파일로 쉽게 분할하거나 특정 기준에 따라 파일의 특정 부분을 추출할 수 있습니다.
Linux에서 split 명령을 사용하여 파일을 분할하는 방법을 살펴보겠습니다. 큰 파일의 특정 부분을 추출하거나 파일을 더 작은 덩어리로 분할해야 할 때 split 명령을 사용하면 목표를 쉽게 달성할 수 있습니다.
split 명령이란 무엇인가요?
split 명령은 Torbjorn Granlund와 Richard M. Stallman이 만든 인기 있는 Linux 명령줄 도구입니다. 이름에서 알 수 있듯이 split 명령은 파일을 더 작은 하위 파일로 분할하는 데 사용됩니다.
이 명령은 대용량 파일을 관리하거나 대역폭이 제한된 네트워크를 통해 파일을 전송할 때 유용합니다. 큰 파일을 작은 부분으로 나누면 한 번에 전송하거나 저장해야 하는 데이터의 양을 줄일 수 있습니다. 분할 명령을 반대로 사용하여 여러 파일을 하나로 결합할 수도 있습니다.
분할 명령 구문
분할 명령의 기본 구문은 다음과 같습니다:
split [OPTION]... [FILE] [PREFIX]
⭐ [OPTION]: 분할 명령에는 파일을 분할하는 방법과 추가하고 싶은 다른 특정 기능을 결정할 수 있는 다양한 옵션이 있습니다.
⭐ [파일]: 분할하려는 파일의 경로입니다.
⭐ [접두사]: 하위 파일의 접두사를 나타냅니다.
분할 명령 사용 방법
분할 명령을 사용하여 큰 파일을 크기나 길이에 따라 작은 파일로 나눌 수 있습니다. 원하는 특정 수의 작은 파일을 선택할 수도 있습니다.
데모를 위해 largefile.txt라는 텍스트 파일을 사용하겠습니다. 이 튜토리얼에서는 여러 줄로 되어 있고 크기가 상당히 큰 텍스트 파일을 선택하시기 바랍니다. 텍스트 파일이 없는 경우에는 Linux 텍스트 편집기나 cat 명령을 사용하여 큰 텍스트를 붙여넣고 저장할 수 있습니다.
줄 수에 따라 큰 파일 분할
split 명령을 사용하여 파일당 특정 줄 수를 기준으로 큰 파일을 작은 파일로 분할할 수 있습니다. 구문은 다음과 같습니다:
split -l [number of lines] [input file] [output file prefix]
예를 들어 210줄의 파일을 각각 50줄의 파일로 분할하면 더 작은 파일 5개를 얻을 수 있습니다. 처음 네 개의 파일에는 각각 50줄이 있고 다섯 번째 파일에는 10줄만 포함됩니다.
“largefile.txt”라는 파일을 각각 100줄의 작은 파일로 분할하려면 이 명령을 실행합니다:
split -l 100 largefile.txt smallfile
ls 명령을 사용하여 디렉터리의 내용을 나열하면 분할된 파일을 볼 수 있습니다.
크기에 따라 큰 파일 분할
분할 명령을 사용하여 특정 파일 크기에 따라 큰 파일을 작은 파일로 분할할 수도 있습니다. 기본 구문은 다음과 같습니다:
split -b [size in bytes] [input file] [output file prefix]
이 명령을 실행하여 largefile.txt를 각각 300바이트의 작은 파일로 분할합니다:
split -b 300 largefile.txt smallfile
결과는 다음과 같습니다:
큰 파일을 특정 수의 파일로 분할
파일 수와 바이트 수에 관계없이 파일을 고정된 수의 파일로 분할할 수도 있습니다. 이 작업은 -n 옵션을 사용하여 수행합니다. 구문은 다음과 같습니다:
split -n [number of files] [input file] [output file prefix]
큰 파일을 다섯 부분으로 분할하려면 이 명령을 실행합니다:
split -n 5 largefile.txt smallfile
결과는 다음과 같아야 합니다:
분할 파일의 접미사 길이 변경
아시다시피 출력 파일 이름에 첨부되는 접미사의 기본 길이는 두 개입니다. 예를 들어, smallfileaa, smallfileab, smallfileac 등이 있습니다.
접미사 길이를 변경하려면 -a 옵션을 사용합니다. 접미사 길이를 변경하는 구문은 다음과 같습니다.
split -a [length of suffix] [input file] [output file prefix]
이 접미사 길이 옵션은 다른 분할 명령과 함께 사용할 수 있습니다. 접미사 길이가 4인 largefile.txt 파일을 10개의 부분으로 분할하려면 이 명령을 실행합니다:
split -a 4 -n 10 largefile.txt smallfile
디렉터리의 내용을 나열하면 출력은 다음과 같이 표시됩니다:
cat으로 여러 파일 병합
좋은 소식은 분할된 파일을 언제든지 다시 병합하여 원본 파일을 만들 수 있다는 것입니다. 분할된 파일을 다시 원본 파일로 병합하려면 cat 명령을 사용하세요. 다음은 이를 위한 구문입니다:
cat [split files] > [output file]
cat 명령을 사용하여 분할된 파일을 병합할 때는 분할된 파일의 올바른 순서를 지정하는 것이 중요합니다.
cat 명령은 단순히 파일을 지정된 순서대로 연결하기 때문에 파일이 올바른 순서가 아닐 경우 병합된 파일이 손상될 수 있습니다.
예를 들어 100개의 분할 파일과 같이 분할된 파일이 많은 시나리오에서는 각 파일을 차례로 올바른 순서로 입력하는 것이 번거로울 수 있습니다.
이때 접두사가 유용합니다. 별표 기호(*)를 추가하기만 하면 해당 접두사로 시작하는 모든 파일을 병합할 수 있습니다.
cat prefix* > [output file]
다음은 분할된 파일 smallfileaa, smallfileab, smallfileac 및 smallfilead를 bigfile.txt라는 단일 파일로 병합하는 명령의 예입니다:
cat smallfile* > bigfile.txt
이 명령은 작은 파일* 패턴과 일치하는 모든 분할 파일의 내용을 연결하고 출력을 bigfile.txt라는 새 파일로 리디렉션합니다.또한 분할된 파일은 이름에 따라 자연스러운 순서로 나열되며, 이는 병합을 위한 올바른 순서여야 합니다.
Linux 도구를 사용하여 효율성 향상
분할 명령은 대용량 파일을 더 작고 관리하기 쉬운 청크로 나누어 효율적으로 관리할 수 있도록 Linux에서 제공하는 많은 도구 중 하나에 불과합니다.
Linux 텍스트 처리 명령을 익히면 시간과 리소스를 절약하고 효율성을 높일 수 있습니다.