Linux 텍스트 처리

나나's Brain·2024년 7월 8일

Linux

목록 보기
8/11
post-thumbnail

📁 텍스트 처리 명령어

텍스트 처리 명령어를 위해 아래 두 파일(number.txt와 fruit.txt)과 같은 내용이 들어 있도록 파일을 생성 후 수정한다.

$ mkdir sortDir

$ touch ./sortDir/number.txt

$ touch sortDir/fruit.txt

$ cd sortDir

$ vim number.txt

$ vim fruit.txt
  • 📑 number.txt
9
4
2
7
6
5
10
20
11
21
  • 📑 fruit.txt
mango banana pineapple
kiwi
orange
strawberry grape
watermelon
cherry
pear
peach
grape kiwi
banana
banana
mango
grape
grape
mango
cherry

🔖 f 명령어

💡 wc 명령어를 통해 파일의 행 수, 단어 수, 바이트 수를 출력할 수 있다.

## 행수, 단어수, 바이트 수, 파일 이름
$ wc fruit.txt

## 행만 표시
$ wc -l fruit.txt

## 단어만 표시
$ wc -w fruit.txt

## 바이트 수만 표시
$ wc -c fruit.txt

파이프라인 을 통해 루트 렉토리의 파일과 디렉토리가 총 몇 개인지도 알 수 있다.

## 루트 디렉토리
$ ls / | wc -l

파이프라인(Pipeline) :
‘|’ 기호를 사용하여 구성하며 왼쪽 명령어의 출력을 오른쪽 명령어의 입력으로 전달한다. 다양한 명령어를 조합하여 복잡한 작업을 수행하기 위한 데이터 처리 및 변환에 사용된다.


🔖 sort 명령어

✅ 숫자 값으로 정렬

💡 -n 옵션을 추가하면 내용이 문자열이 아닌 숫자로 판단한다.

✅ 역순으로 정렬

💡 -r 옵션을 추가하면 역순으로 정렬된다.


🔖 head와 tail 명령어

💡 head 명령어를 사용하면 파일의 처음 부분을, tail 명령어를 사용하면 파일의 마지막 부분을 출력할 수 있다.

옵션설명
-n numbernumber 수 만큼 출력한다.
-c numbernumber 바이트 만큼 출력한다.
-q여러 개의 파일을 출력할 때 제목을 출력하지 않는다.
-f내용이 변경될 때마다 실시간으로 출력해주며 로그파일 모니터링 등에 활용된다.(tail만 해당)
## 마지막 4행만 보여준다.

$ tail -n 4 /etc/passwd
$ cat /etc/passwd | tail -n 4

## 처음 4행만 보여준다.

$ head -n 4 /etc/passwd
$ cat /etc/passwd | head -n 4


🔖 uniq 명령어

💡 같은 내용이 연속되어 있는 경우에만 중복을 제거한다.

## 연속된 중복 데이터 제거
$ uniq fruit.txt

## 연속된 중복 데이터 제거 후 정렬(연속되지 않은 중복은 제거 되지 않음을 확인)
$ uniq fruit.txt | sort

💡 -c 옵션을 주어 중복 데이터 개수를 셀 수도 있다.

## 연속된 중복 데이터 카운팅
$ uniq -c fruit.txt

## 정렬 후 연속된 중복 데이터 카운팅(정렬 후에 중복을 카운팅하면 중복 값을 모두 확인할 수 있다.)
$ sort fruit.txt | uniq -c


🔖 diff 명령어

💡 diff 명령어를 통해 두 파일의 차이점을 출력할 수 있다.

$ diff [옵션] <비교 파일 1> <비교 파일 2>

다음 명령어를 실행하고 아래 파일과 같은 내용이 들어 있도록 파일을 생성하고 수정한다.

$ touch fruit2.txt

$ vim fruit2.txt
  • 📑 fruit2.txt
    mango banana pineapple
    kiwi
    orange
    strawberry grape
    watermelon
    cherry
    pear
    peach
    grape kiwi
    banana
    banana
    chocolate
    candy
    marshmallow

diff 명령어를 통해 fruit.txtfruit2.txt의 차이를 확인한다.

## fruit.txt와 fruit2.txt의 차이를 비교한다.
$ diff fruit.txt fruit2.txt

## 결과는 fruit.txt의 12번째 줄부터 16번째 행이 fruit2.txt의 12번째 줄부터 14번째 줄로 변경되었음을 나타낸다.

profile
"로컬에선 문제없었는데…?"

0개의 댓글