Linux 줄 병합

LinuxBeginner
지금 연습하기

소개

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 명령을 사용하여 여러 파일의 줄을 다양한 방식으로 병합하는 방법을 배웠습니다.

  1. 기본 탭 구분 기호로 파일을 가로로 병합하는 paste의 기본 사용법
  2. 파일을 병합할 때 사용자 정의 구분 기호를 지정하기 위한 -d 옵션 사용
  3. 파일 내의 줄을 결합하기 위한 순차 병합에 -s 옵션 사용

이러한 기술은 Linux 환경에서 데이터 처리 및 텍스트 조작에 필수적입니다. paste 명령은 특히 다음과 같은 경우에 유용합니다.

  • 별도의 열 파일에서 표 형식 데이터 생성
  • 데이터베이스 또는 스프레드시트로 가져오기 위한 데이터 형식 지정
  • 데이터를 세로에서 가로 레이아웃으로, 또는 그 반대로 변환
  • 다른 Linux 명령으로 추가 처리를 위한 데이터 준비

paste 명령을 마스터함으로써 텍스트 데이터를 효율적으로 조작하고 처리하는 데 도움이 되는 강력한 도구를 Linux 명령줄 도구 모음에 추가했습니다.