[Centos 7] String Process(문자열 프로세스) - sed, echo, diff, sort

2022. 11. 17. 23:38리눅스(Linux)

What is sed?
   - vi편집기처럼 편집에 특화된 명령어이다.

   - vi와의 차이점은 sed의 경우 명령어를 통해 작업한 후 결과를 화면을 출력한다는 점이다.

   - 원본을 손상시키지 않는다는 장점이 있다. 원본을 건드리지 않고 편집을 할 수 있다.

 

옵션

-i : 변경된 결과를 원본파일에 덮어쓸 수 있다.

-p : 특정 행을 출력

-d : 특정 행 삭제

-s : 단어 치환

-c : 특정 행의 내용 전부 치환

-r : 특정행에 파일의 내용을 추가

-n : 작업한 부분만 억제해서 출력

$ 사용예제

sed -i 's/{변경 전}/{변경 후}/g' {경로}
   - {-i} 옵션을 사용해 변경된 결과를 원본파일에 덮어쓴다.
     {s/g} 옵션을 사용하여 한 줄에 여러 공통값이 있어도 전부 치환한다.

 

What is echo?
   - C언어의 printf함수에 준하는 화면 출력을 담당하는 명령어

 

옵션

-e : 백슬래시 이스케이프를 해석할 수 있다.

\b : 텍스트 사이의 모든 공백을 제거

\c : 새로운 라인없이 해당 옵션을 사용하여 후행 줄 바꿈을 억제

\n : 옵션이 사용되는 곳에서 새 줄을 생성

\t : 가로 탭 공간 생성

\v : 새로 탭 공간을 만드는 데 사용.

echo* : ls 명령어와 유사하여 모든 파일/디렉터리 목록을 표시

 
echo Hello
Hello
   - 리눅스 echo 명령어는 큰 따옴표 없이도 문자열 출력 가능

echo "{문자열}" > test.txt
   - test.txt 파일이 없으면 새로 생성하고, 있으면 덮어쓰기로 진행 
   
echo "{문자열}" >> test.txt
   - test.txt 파일이 없으면 새로 생성하고, 있으면 이어쓰기로 진행
 
 

What is diff?
   - 두 파일(디렉터리) 사이의 내용을 비교하고 다른 부분을 출력

[형식]

diff [옵션] [비교파일1] [비교파일2]

 

[옵션]

-c : 두 파일간의 차이점 출력

-d : 두 파일간의 차이점을 상세하게 출력

-r : 두 디렉터리간의 차이점, 서브 디렉터리까지 비교

-i : 대소문자의 차이 무시

-w : 모든 공백 차이 무시

-s : 두 파일이 같을 때 알림

-u : 두 파일의 변경되는 부분과 변경되는 부분의 근처의 내용도 출력

 

diff -d 'A.txt' 'Backup.txt'
1,2c1,2
< AB
< CD
---
> EF
> GH
   - 'A.txt' 파일과 'Backup.txt' 파일을 비교해서 상세히 출력
      A파일에 1,2 행과 Backup파일에 1,2행이 다름(c)을 표시 --> 1,2c1,2

 

 

What is sort?
   -
텍스트 파일의 내용을 알파벳 순서대로 정렬

 

옵션

-r : 역순으로 정렬한다.

-k : 정해진 필드를 기준으로 정렬한다. ex) sort -k2 : 2번째 필드로 정렬

-u : 정렬 후 중복된 내용을 제거한다.

-t : 필드 구분자를 지정, -k 옵션으로 필드를 지정해서 사용할 때 좋다.

-f : 대소문자를 구분하지 않고 정렬한다

 
cat A.txt | sort | grep –v ‘name’
:010-1234-5678  :1996-06-20  :F 
:010-1232-5678  :1996-06-21  :F
:010-1233-5678  :1996-06-26  :M
   - A.txt 파일을 알파벳 순서대로 출력하는 대신에 name이 들어가 있는 행은 출력하지 않는다.

cat A.txt | sort | tee B.txt
가위
나비
다람쥐
바위
   - A 파일을 정렬하여 새로운 파일 B 생성
    (tee)를 사용하면 입력한 내용을 화면에 출력과 동시에 파일 저장