티스토리 뷰

반응형

파일 정렬 - sort

$ sort [-옵션] 파일*

sort 명령어 : 파일 내용을 줄 단위로 오름차순 정렬한다. (기본적으로 각 줄의 첫 번째 필드를 기준으로 삼는다.)

정렬 필드 지정 방법

1. -k 필드번호 : 필드번호를 1부터 센다.

2. +시작필드 -종료필드 : 필드번호를 0부터 세며, (시작필드 ~ 종료필드 - 1) 을 기준으로 정렬한다.

# 둘 다 동일한 명령
$ sort -k 3 you.txt 
$ sort +2 -3 you.txt
 

 

옵션

-b
앞에 붙는 공백을 무시한다.
-c
이미 정렬된 상태인지 확인한다.
-d
숫자, 문자, 공백만 비교해 사전식으로 정렬한다.
-f
대소문자 구분 없이 정렬한다.
-n
숫자 문자열의 숫자 값에 따라 정렬한다.(1, 2, 3...)
-r
역순(내림차순)으로 정렬한다.
-t 문자
지정된 문자를 필드 구분자로 사용한다.
-o
정렬된 내용을 지정된 파일에 저장한다.

 

# sort.txt을 정렬해 you.txt에 저장 
$ sort -o sort.txt you.txt 

#':'을 필드 구분자로 사용하며 3번째 필드 기준으로 정렬 
$ sort -t: -k 3 -n /etc/passwd
 

파일 비교 - cmp

$ cmp 파일1 파일2​

cmp 명령어 : 파일1과 파일2가 같은지 비교한 뒤, 같으면 출력하지 않고 다르면 달라지는 위치를 출력한다.

$ cmp you.txt me.txt 
you.txt me.txt 다름: 340자, 10행

 


 

파일 편집 - diff

$ diff [-i] 파일1 파일2

diff 명령어 : 파일1과 파일2를 줄 단위로 비교해 차이점을 출력한다. 파일 내용을 바꿀 수 있는 편집 명령어의 형태이다.

-i 옵션 : 대소문자를 무시한다.

 

내용 추가

n1 a n3, n4 
> 추가 내용들

→ 파일1의 줄 n1 이후에 파일2의 n3 ~ n4 까지의 줄들을 추가하면 두 파일의 내용이 같아진다.

 

 

$ diff you.txt me.txt 
9a10,13 
> 
> line10 
> line11 
> line12

내용 삭제

n1,n2 d n3 - 삭제 
< 삭제될 파일1의 내용들

→ 파일1의 n1 ~ n2 까지 줄들을 삭제하면 두 파일의 내용이 같아진다.

$ diff me.txt you.txt 
10,13d9
< 
< line10 
< line11 
< line12

 

내용 변경

n1, n2 c n3, n4 
< 파일1의 대치될 줄들 
- - 
> 파일2의 대치할 줄들

 파일1의 n1 ~ n2까지 줄들을 파일2의 n3 ~ n4까지 줄들로 대치하면 내용이 같아진다.

$ diff 파일1 파일2 
1 c 1 
< This is the first file 
-- 
> This is the second file.
반응형