소개
Linux 운영 체제는 사용자가 여러 파일의 데이터를 효율적으로 조작하고 결합할 수 있는 강력한 텍스트 처리 도구를 제공합니다. 그중 하나가 paste 명령으로, 서로 다른 파일의 줄을 나란히 병합합니다. 별도의 소스에서 데이터를 결합하는 이러한 기능은 데이터 분석, 구성 관리 및 보고서 생성에 필수적입니다.
이 Lab 에서는 paste 명령을 사용하여 다양한 방식으로 서로 다른 파일의 줄을 병합하는 방법을 배우게 됩니다. 명령의 기본 기능을 살펴보고, 병합된 열 사이의 구분 기호를 사용자 정의하는 방법을 배우며, 파일을 순차적으로 처리하는 방법을 이해하게 됩니다. 이러한 기술은 Linux 환경에서 효과적인 데이터 처리에 필수적입니다.
paste 명령어 기본 사용법
Linux 의 paste 명령은 여러 파일의 줄을 가로로 (병렬 병합) 병합하는 데 사용됩니다. 이는 별도의 파일에 저장된 관련 데이터를 결합해야 할 때 특히 유용합니다.
모든 작업을 수행할 프로젝트 디렉토리로 이동하는 것부터 시작해 보겠습니다.
cd ~/project
이제 paste 명령을 시연하기 위해 몇 가지 샘플 파일을 만들어야 합니다. 먼저, 온도 데이터를 포함하는 파일을 만들어 보겠습니다.
echo "Temperature" > temperatures.txt
이 명령은 echo를 사용하여 "Temperature"라는 단어를 temperatures.txt 파일에 씁니다. > 기호는 echo 명령의 출력을 파일로 리디렉션하여, 파일이 없으면 생성하고 있으면 덮어씁니다.
다음으로, 다양한 대기 조건을 포함하는 다른 파일을 만들어 보겠습니다.
echo -e "Pressure\nHumidity\nWind_Speed" > conditions.txt
이 명령에서 echo와 함께 -e 옵션을 사용하여 백슬래시 이스케이프를 해석합니다. \n은 줄 바꿈 문자를 나타내므로 이 명령은 "Pressure", "Humidity", "Wind_Speed"의 세 줄이 있는 파일을 만듭니다.
두 파일의 내용을 확인하여 올바르게 생성되었는지 확인해 보겠습니다.
cat temperatures.txt
다음과 같이 표시되어야 합니다.
Temperature
이제 conditions 파일을 확인해 보겠습니다.
cat conditions.txt
다음과 같이 표시되어야 합니다.
Pressure
Humidity
Wind_Speed
이제 파일이 준비되었으므로 paste 명령을 사용하여 나란히 병합해 보겠습니다.
paste temperatures.txt conditions.txt
출력은 다음과 같아야 합니다.
Temperature Pressure
Humidity
Wind_Speed
paste 명령이 파일을 줄 단위로 병합하여 각 줄에서 temperatures.txt의 내용을 conditions.txt의 내용 앞에 배치했음을 알 수 있습니다. 탭 문자는 열 사이의 기본 구분 기호로 사용됩니다.
temperatures.txt에는 한 줄만 있으므로 conditions.txt의 나머지 줄은 temperatures.txt 내용이 있을 공간에 빈 공간과 함께 표시됩니다.
paste의 이 기본 사용법은 별도의 열 파일에서 표 형식 데이터를 만드는 데 유용한, 서로 다른 파일의 데이터를 가로로 결합하는 방법을 보여줍니다.
paste 명령어와 사용자 정의 구분 기호 사용
기본적으로 paste 명령은 병합된 열 사이의 구분 기호로 탭 문자를 사용합니다. 그러나 -d 옵션을 사용하여 다른 구분 기호를 지정할 수 있습니다. 이는 CSV 파일, 사용자 정의 형식의 데이터를 만들거나 다른 도구에 대한 데이터를 준비하는 데 유용합니다.
사용자 정의 구분 기호를 사용하는 것을 시연하기 위해 날짜 정보가 있는 새 파일을 만들어 보겠습니다.
echo -e "Date\n2023-04-01\n2023-04-02\n2023-04-03" > dates.txt
이렇게 하면 "Date" 헤더와 세 개의 날짜, 총 네 줄이 있는 파일이 생성됩니다.
이 새 파일의 내용을 확인해 보겠습니다.
cat dates.txt
다음과 같이 표시되어야 합니다.
Date
2023-04-01
2023-04-02
2023-04-03
이제 기본 탭 대신 쉼표를 구분 기호로 사용하여 세 파일을 모두 병합해 보겠습니다.
paste -d ',' temperatures.txt conditions.txt dates.txt
쉼표 뒤에 오는 -d 옵션은 쉼표를 열 사이의 구분 기호로 사용하려는 것을 지정합니다. 이 명령은 세 파일을 나란히 병합하고 각 파일의 값을 쉼표로 구분합니다.
출력은 다음과 같아야 합니다.
Temperature,Pressure,Date
,Humidity,2023-04-01
,Wind_Speed,2023-04-02
,,2023-04-03
temperatures.txt에 한 줄만 있기 때문에 2-4 행의 첫 번째 열에 빈 값이 있는 것을 확인하십시오. 마찬가지로, conditions.txt에 세 줄만 있기 때문에 4 행의 두 번째 열에 빈 값이 있습니다.
어떤 문자든 구분 기호로 사용할 수 있습니다. 예를 들어, 콜론을 사용해 보겠습니다.
paste -d ':' temperatures.txt conditions.txt dates.txt
출력은 다음과 같아야 합니다.
Temperature:Pressure:Date
:Humidity:2023-04-01
:Wind_Speed:2023-04-02
::2023-04-03
구분 기호를 선택하는 이러한 유연성은 paste 명령을 데이터베이스 또는 스프레드시트로 가져오기 위한 데이터를 준비하는 등 특정 요구 사항을 충족하도록 데이터를 형식화하는 데 유용한 도구로 만듭니다.
paste 명령어를 이용한 순차적 병합
지금까지 paste 명령을 사용하여 파일을 가로로 병합하여 서로 다른 파일의 내용을 나란히 배치했습니다. 그러나 paste는 -s 옵션을 사용하여 파일을 순차적으로 (하나씩) 병합할 수도 있습니다. 이는 파일의 여러 줄을 단일 줄로 변환하거나 각 파일을 개별적으로 처리하려는 경우에 유용합니다.
이미 생성한 파일을 사용하여 순차 병합을 시연해 보겠습니다.
paste -s temperatures.txt
-s 옵션은 paste에 각 파일 내의 줄을 다음 파일로 이동하기 전에 순차적으로 병합하도록 지시합니다. temperatures.txt에는 한 줄만 있으므로 출력은 달라 보이지 않을 수 있습니다.
Temperature
여러 줄이 있는 conditions.txt 파일로 시도해 보겠습니다.
paste -s conditions.txt
출력은 다음과 같아야 합니다.
Pressure Humidity Wind_Speed
conditions.txt의 모든 줄이 탭으로 값을 구분하여 단일 줄로 병합되었음을 알 수 있습니다. 이는 서로 다른 파일의 줄을 병합하는 paste의 기본 동작과는 다릅니다.
-s와 함께 -d 옵션을 사용하여 순차 병합에 대한 사용자 정의 구분 기호를 지정할 수도 있습니다.
paste -s -d ',' conditions.txt
출력은 다음과 같아야 합니다.
Pressure,Humidity,Wind_Speed
paste -s에 여러 파일을 제공하면 각 파일을 개별적으로 처리하여 각 파일에 대해 별도의 출력 줄을 생성합니다.
paste -s temperatures.txt conditions.txt dates.txt
출력은 다음과 같아야 합니다.
Temperature
Pressure Humidity Wind_Speed
Date 2023-04-01 2023-04-02 2023-04-03
보시다시피 첫 번째 줄은 temperatures.txt의 병합된 내용 (한 줄) 이고, 두 번째 줄은 conditions.txt의 병합된 내용이며, 세 번째 줄은 dates.txt의 병합된 내용입니다.
또한 -s 및 -d 옵션을 결합하여 각 파일에 대해 다른 구분 기호를 지정할 수 있습니다. 예를 들어:
paste -s -d ',:\n' temperatures.txt conditions.txt dates.txt
-d ',:\n' 옵션은 세 개의 구분 기호를 지정합니다. 첫 번째 파일에 대한 쉼표, 두 번째 파일에 대한 콜론, 세 번째 파일에 대한 줄 바꿈 (다음 줄로 이동) 입니다. 출력은 다음과 같아야 합니다.
Temperature
Pressure:Humidity:Wind_Speed
Date 2023-04-01 2023-04-02 2023-04-03
paste를 사용한 순차 병합은 데이터 레이아웃을 변환하여 서로 다른 처리 요구 사항에 적합하게 만들 수 있는 강력한 기능입니다.
요약
이 Lab 에서는 Linux 에서 paste 명령을 사용하여 여러 파일의 줄을 다양한 방식으로 병합하는 방법을 배웠습니다.
- 기본 탭 구분 기호로 파일을 가로로 병합하는
paste의 기본 사용법 - 파일을 병합할 때 사용자 정의 구분 기호를 지정하기 위한
-d옵션 사용 - 파일 내의 줄을 결합하기 위한 순차 병합에
-s옵션 사용
이러한 기술은 Linux 환경에서 데이터 처리 및 텍스트 조작에 필수적입니다. paste 명령은 특히 다음과 같은 경우에 유용합니다.
- 별도의 열 파일에서 표 형식 데이터 생성
- 데이터베이스 또는 스프레드시트로 가져오기 위한 데이터 형식 지정
- 데이터를 세로에서 가로 레이아웃으로, 또는 그 반대로 변환
- 다른 Linux 명령으로 추가 처리를 위한 데이터 준비
paste 명령을 마스터함으로써 텍스트 데이터를 효율적으로 조작하고 처리하는 데 도움이 되는 강력한 도구를 Linux 명령줄 도구 모음에 추가했습니다.



