리눅스 텍스트 열 정렬

LinuxBeginner
지금 연습하기

소개

텍스트 열 정렬 (Text columnization) 은 Linux 에서 데이터를 구조화된 표 형식으로 구성하고 표시할 수 있는 강력한 기술입니다. 구분된 데이터를 포함하는 일반 텍스트 파일을 다룰 때, 적절한 서식이 없으면 내용을 읽기가 어려울 수 있습니다. Linux 의 column 명령은 일반 텍스트를 깔끔하게 서식이 지정된 열로 변환하여 이 문제를 해결합니다.

이 랩에서는 Linux 에서 column 유틸리티를 마스터하는 방법을 안내합니다. 파일 내용을 표 형식으로 표시하여 데이터를 더 쉽게 읽고 분석하는 방법을 배우게 됩니다. 이러한 기술은 명령줄 환경에서 데이터 처리 및 시각화에 필수적입니다.

이것은 가이드 실험입니다. 학습과 실습을 돕기 위한 단계별 지침을 제공합니다.각 단계를 완료하고 실무 경험을 쌓기 위해 지침을 주의 깊게 따르세요. 과거 데이터에 따르면, 이것은 초급 레벨의 실험이며 완료율은 93%입니다.학습자들로부터 99%의 긍정적인 리뷰율을 받았습니다.

column 명령어 기본 이해

이 단계에서는 column 명령을 사용하여 텍스트를 정렬된 열로 서식을 지정하여 데이터를 더 쉽게 읽고 해석하는 방법을 배우겠습니다.

column 명령은 Linux 에서 입력을 여러 열로 서식을 지정하는 유틸리티입니다. 이는 자연스러운 구조를 가지고 있지만 일반 텍스트 형식으로 저장된 데이터를 처리할 때 특히 유용합니다.

샘플 데이터 파일 생성

서식을 지정하려는 데이터가 포함된 간단한 텍스트 파일을 생성하는 것으로 시작해 보겠습니다. 초능력 이름과 해당 영웅 이름을 콜론으로 구분하여 ~/project 디렉토리에 powers_list.txt라는 파일을 생성합니다.

프로젝트 디렉토리로 이동합니다.

cd ~/project

이제 백슬래시 이스케이프 (예: 줄 바꿈을 위한 \n) 의 해석을 활성화하는 -e 옵션과 함께 echo 명령을 사용하여 샘플 파일을 생성합니다.

echo -e "Telekinesis:Jane\nInvisibility:John\nSuper Strength:Max" > ~/project/powers_list.txt

방금 생성한 파일의 내용을 살펴보겠습니다.

cat ~/project/powers_list.txt

다음과 같은 출력이 표시됩니다.

Telekinesis:Jane
Invisibility:John
Super Strength:Max

이 데이터는 초능력 이름과 영웅 이름 사이의 구분 기호로 콜론 (:) 으로 서식이 지정됩니다. 이대로는 읽기가 쉽지 않습니다.

서식을 위한 column 명령 사용

이제 column 명령을 사용하여 이 데이터를 더 읽기 쉬운 형식으로 변환해 보겠습니다.

column -t -s ':' ~/project/powers_list.txt

이 명령에서:

  • column은 우리가 사용하고 있는 유틸리티입니다.
  • -t 옵션은 명령에 테이블과 유사한 출력을 생성하도록 지시합니다.
  • -s ':'는 입력 파일의 구분 기호 (separator) 가 콜론임을 지정합니다.
  • ~/project/powers_list.txt는 입력 파일의 경로입니다.

이 명령을 실행하면 다음과 같은 출력이 표시됩니다.

Telekinesis     Jane
Invisibility    John
Super Strength  Max

이제 데이터가 열에 깔끔하게 정렬되어 훨씬 쉽게 읽을 수 있습니다. column 명령은 내용에 따라 각 열의 너비를 자동으로 결정하고 그에 따라 모든 것을 정렬했습니다.

column 명령의 이러한 기본 사용법은 텍스트 데이터를 더 나은 가독성을 위해 서식을 지정하는 데 있어 그 강력함을 보여줍니다.

셸 스크립트를 사용한 고급 column 서식 지정

이 단계에서는 다양한 구분 기호로 텍스트 파일을 열 정렬하기 쉽게 해주는 셸 스크립트를 만들 것입니다. 이 접근 방식은 다양한 데이터 형식으로 작업할 때 더 많은 유연성과 효율성을 제공합니다.

셸 스크립트 이해

셸 스크립트는 셸이 실행할 수 있는 명령이 포함된 파일입니다. 여러 명령을 결합하고 로직을 추가하여 작업을 자동화할 수 있습니다. 이 경우, 파일 열 정렬 프로세스를 단순화하는 스크립트를 만들 것입니다.

Columnize 스크립트 생성

~/project 디렉토리에 columnize.sh라는 스크립트를 만들어 보겠습니다. 이 스크립트는 파일 이름과 구분 기호 문자의 두 가지 인수를 받습니다.

먼저, 아직 해당 디렉토리에 있지 않다면 프로젝트 디렉토리로 이동합니다.

cd ~/project

이제 스크립트 파일을 생성합니다.

touch columnize.sh

다음으로, nano 텍스트 편집기로 파일을 엽니다.

nano columnize.sh

다음 내용을 파일에 추가합니다.

#!/bin/bash
## A script to columnize text files

## Check if the correct number of arguments are provided
if [ "$#" -ne 2 ]; then
  echo "Usage: $0 <filename> <delimiter>"
  echo "Example: $0 data.txt :"
  exit 1
fi

## Extract arguments
FILENAME=$1
DELIMITER=$2

## Check if the file exists
if [ ! -f "$FILENAME" ]; then
  echo "Error: File '$FILENAME' does not exist"
  exit 1
fi

## Format and output the content
column -t -s "$DELIMITER" "$FILENAME"

nano 에서 파일을 저장하려면 Ctrl+O를 누른 다음 Enter를 누르고, nano 를 종료하려면 Ctrl+X를 누릅니다.

이 스크립트가 수행하는 작업을 자세히 살펴보겠습니다.

  1. 첫 번째 줄 (#!/bin/bash) 은 시스템에 bash 셸을 사용하여 스크립트를 실행하도록 지시합니다.
  2. 정확히 두 개의 인수 (파일 이름과 구분 기호) 가 제공되었는지 확인합니다.
  3. 이러한 인수를 변수에 할당하여 더 쉽게 참조할 수 있도록 합니다.
  4. 지정된 파일이 존재하는지 확인합니다.
  5. 마지막으로, 제공된 파일 이름과 구분 기호로 column 명령을 사용합니다.

스크립트 실행 가능하게 만들기

스크립트를 사용하기 전에 실행 가능하게 만들어야 합니다.

chmod +x ~/project/columnize.sh

Columnize 스크립트 사용

이제 스크립트를 사용하여 텍스트 파일을 열 정렬할 수 있습니다. 기존 powers_list.txt 파일과 함께 사용해 보겠습니다.

~/project/columnize.sh ~/project/powers_list.txt :

다음과 같은 출력이 표시됩니다.

Telekinesis     Jane
Invisibility    John
Super Strength  Max

스크립트의 유연성을 테스트하기 위해 다른 구분 기호가 있는 다른 샘플 파일을 만들어 보겠습니다.

echo -e "Apple,Red,Fruit\nCarrot,Orange,Vegetable\nBlueberry,Blue,Fruit" > ~/project/foods.txt

이제 이 새 파일과 쉼표를 구분 기호로 사용하여 스크립트를 사용합니다.

~/project/columnize.sh ~/project/foods.txt ,

다음과 같은 출력이 표시됩니다.

Apple      Red     Fruit
Carrot     Orange  Vegetable
Blueberry  Blue    Fruit

스크립트는 서로 다른 구분 기호를 사용하여 두 파일의 데이터를 성공적으로 열 정렬했습니다. 이는 셸 스크립팅과 column 유틸리티를 결합하여 얻을 수 있는 유연성과 강력함을 보여줍니다.

다양한 파일 형식 다루기

이 단계에서는 다양한 파일 형식 및 구분 기호와 함께 column 명령을 사용하는 방법을 살펴보겠습니다. 이를 통해 column 유틸리티의 다재다능함과 다양한 유형의 데이터에 적용할 수 있는 방법을 이해할 수 있습니다.

CSV 파일로 작업하기

CSV(Comma-Separated Values, 쉼표로 구분된 값) 파일은 표 형식 데이터를 저장하는 데 널리 사용되는 형식입니다. 더 복잡한 CSV 파일을 만들고 column 명령을 사용하여 서식을 지정해 보겠습니다.

먼저, 새 CSV 파일을 만듭니다.

cd ~/project
echo -e "Name,Age,Occupation,City\nAlex,28,Engineer,Boston\nSamantha,35,Teacher,Chicago\nMohamed,42,Doctor,New York\nLin,31,Artist,San Francisco" > employees.csv

이 파일의 내용을 살펴보겠습니다.

cat employees.csv

다음과 같은 내용이 표시됩니다.

Name,Age,Occupation,City
Alex,28,Engineer,Boston
Samantha,35,Teacher,Chicago
Mohamed,42,Doctor,New York
Lin,31,Artist,San Francisco

이제 column 명령을 사용하여 이 CSV 파일의 서식을 지정해 보겠습니다.

column -t -s ',' employees.csv

출력은 다음과 같아야 합니다.

Name       Age  Occupation  City
Alex       28   Engineer    Boston
Samantha   35   Teacher     Chicago
Mohamed    42   Doctor      New York
Lin        31   Artist      San Francisco

column 명령이 데이터를 정렬된 열로 깔끔하게 정렬하여 훨씬 쉽게 읽을 수 있음을 알 수 있습니다.

TSV 파일로 작업하기

TSV(Tab-Separated Values, 탭으로 구분된 값) 는 표 형식 데이터에 대한 또 다른 일반적인 형식입니다. TSV 파일을 만들고 column 명령을 사용하여 서식을 지정해 보겠습니다.

TSV 파일을 만듭니다.

echo -e "Product\tPrice\tCategory\nLaptop\t999.99\tElectronics\nBook\t12.50\tMedia\nChair\t149.50\tFurniture" > products.tsv

내용을 살펴보겠습니다.

cat products.tsv

다음과 같은 내용이 표시됩니다.

Product Price Category
Laptop 999.99 Electronics
Book 12.50 Media
Chair 149.50 Furniture

이제 column 명령을 사용하여 서식을 지정합니다. 탭은 column 명령의 기본 구분 기호이므로 구분 기호를 지정할 필요가 없습니다.

column -t products.tsv

출력은 다음과 같아야 합니다.

Product  Price   Category
Laptop   999.99  Electronics
Book     12.50   Media
Chair    149.50  Furniture

다양한 파일에 스크립트 사용하기

이제 이러한 다양한 파일에 columnize.sh 스크립트를 사용해 보겠습니다.

CSV 파일의 경우:

~/project/columnize.sh employees.csv ,

TSV 파일의 경우:

~/project/columnize.sh products.tsv $'\t'

참고: 두 번째 명령에서 탭 문자를 나타내기 위해 $'\t'를 사용하고 있습니다. 이는 탭과 같은 특수 문자를 포함할 수 있도록 하는 bash 의 특수 구문입니다.

두 명령 모두 깔끔하게 서식이 지정된 출력을 생성하여 다양한 파일 형식 및 구분 기호로 스크립트의 유연성을 보여줍니다.

이 단계에서는 column 명령과 스크립트를 사용하여 다양한 유형의 표 형식 데이터를 서식 지정하여 더 읽기 쉽고 분석하기 쉽게 만드는 방법을 보여주었습니다.

요약

이 랩에서는 column 명령을 사용하여 데이터를 표 형식으로 구성하고 표시하여 읽고 분석하기 쉽게 만드는 방법을 배웠습니다. 다음은 수행한 작업에 대한 요약입니다.

  1. 구분된 텍스트 파일의 서식을 지정하기 위해 -t-s 옵션과 함께 column 명령의 기본 사용법을 배웠습니다.

  2. 모든 구분 기호가 있는 모든 파일에 열 서식을 쉽게 적용할 수 있는 셸 스크립트 (columnize.sh) 를 만들었습니다.

  3. 이러한 기술을 다양한 파일 형식 (CSV 및 TSV) 에 적용하여 다양한 데이터 유형에 대한 column 유틸리티의 유연성을 보여주었습니다.

이러한 기술은 Linux 환경에서 데이터 처리 및 분석에 유용합니다. 텍스트 데이터를 빠르게 서식 지정하고 시각화하는 기능은 시스템 관리자, 데이터 분석가 및 명령줄에서 텍스트 파일로 작업하는 모든 사람에게 강력한 도구입니다.

배운 기술은 다음 사항에 적용할 수 있습니다.

  • 로그 파일 분석
  • 구성 파일 관리
  • 데이터 추출 및 변환
  • 구조화된 데이터의 빠른 시각화

column 명령을 마스터하고 셸 스크립트로 사용법을 자동화하는 방법을 배움으로써 Linux 명령줄 도구 상자에 중요한 도구를 추가했습니다.