바닥코딩

리눅스 명령어 - 문자열 처리 본문

네트워크 & 리눅스/리눅스

리눅스 명령어 - 문자열 처리

개발공부개발공부 2024. 4. 3. 10:13

이번 포스트에서는 문자열 처리를 위한 명령어에 대해 다루어 보겠습니다.

 

awk

  입력을 주어진 분리자(field seperator)로 분리하여 명령을 처리합니다.

 옵션 

F 문자열을 분리할 기준이 되는 구분자 입력
v 파라미터 전달

 내장함수

sub 지정한 문자열 치환
gsub 문자열 일괄 치환
index 주어진 문자열과 일치하는 문자의 인덱스를 반환
length 문자열의 길이를 반환
substr 시작위치에서 주어진 길이 만큼의 문자열 반환
split 문자열을 분리하여 배열로 반환
print 문자열 출력
printf 지정한 포맷에 따라 함수 출력
system 명령 실행

 

 

cat

  파일을 읽어 내용을 표시합니다.

 옵션 

-n 행번호를 표시합니다.
-b 공백을 제외하고, 행번호를 표시합니다.

 

cut

  구분자로 구분하여 원하는 값만 출력

 옵션 

-c 지정한 행을  출력
-d 딜리미터를 지정
-f 딜리미터로 잘라진 행을 출력

 

diff

  파일 두개를 비교하여 다른 부분을 출력합니다

 옵션 

-i 대소문자 무시

 

echo

  문자열이나 변수를 출력

 옵션 

-n 개행을 하지 않음
-e 이스케이프 문자를 허용
-E 이스케이프 문자를 허용하지 않음(디폴트)

 

grep

  지정한 문자열을 포함하고 있는 행을 검색합니다.

 옵션 

-i 대소문자 구분없이 검색
-v 해당 문자를 제외하고 검색
-n 검색한 문자의 행 출력
-l 검색한 문자가 들어 있는 파일 이름 출력

예제

grep [OPTIONS] PATTERN [FILE...]
grep [OPTIONS] [-e PATTERN | -f FILE] [FILE...]

# 파이프를 이용한 데이터 입력 
cat file_name.txt | grep PATTERN

 

sed

  텍스트 데이터를 패턴 매칭하여 처리

 옵션 

-f 처리할 명령을 저장한 파일을 지정
-i 원본 파일에 덮어 씀

 예제

$ cat sample.txt 
one
two
three
four

# o를 1로 변경 
# s/이전문자/변경할문자/g 형식으로 입력 
$ sed 's/o/1/g' sample.txt 
1ne
tw1
three
f1ur

# 탭(Tab)을 콤마(,)로 변경하고 출력 
$ sed 's/\t/,/g' sample.txt

# 탭(Tab)을 콤마(,)로 변경하고 sample.txt 에 덮어 씀
$ sed -i 's/\t/,/g' sample.txt

 

sort

  텍스트를 정렬합니다.

 옵션 

-k 정렬할 포지션을 지정
-t 필드를 구분하는 구분자. 기본값은 공백과 탭
-r 역순으로 정렬

 

tr

입력을 주어진 분리자(field seperator)로 분리하여 명령을 처리합니다. 문자를 변경하거나 삭제할 때 사용합니다.

 옵션 

-d 문자를 삭제