[스터디]리눅스 유용한 명령어 정리(grep,awk,sed)

강세준·2023년 1월 19일
0

grep

파일이나 출력의 글자 패턴을 검사해주는 리눅스 명령어

주요옵션

옵션기능
-i대소문자 구별을 하지 않는다
-n출력 line number를 같이 알려준다
-w전체 단어(패턴)이 일치하는 값만 찾는다
-r재귀적으로 타겟 폴더 안 모든 파일,폴더를 검색한다
-e검색하는 글자 패턴을 여러개 사용할때 사용하는 옵션
-l해당 패턴에 일치하는 파일 이름만 출력
-v패턴에 일치하지 않는 줄만 출력

sed

파일이나 입력 스트림에서 텍스트 변환을 수행할 수 있는 명령어

  • Linux 기반 sed와 Uinx기반 mac의 sed는 동작에 차이가 있기 때문에
    mac에서 Linux기반 sed를 사용하기 위해서는 gnu-sed를 설치할 필요가 있다.

사용법

sed [OPTION] 'COMMANDS' input_files

주요 옵션

옵션기능
-np command를 사용하여 각 라인을 출력한다
-i입력받은 파일을 편집한다.
-r더욱 확장된 정규표현식을 사용한다.

주요 Command

command기능
s현재 줄(line)에서 패턴의 첫 항목을 대체문자열로 바꾼다.
g현재 줄에서 패턴의 모든 항목을 대체 문자열로 바꾼다.
d앞에 줄 범위나 특정 줄 번호를 입력하여 삭제한다.
i현재 줄앞 새로운 줄을 삽입한다.
a현재 줄뒤 새로운 줄을 추가한다.

awk

csv파일 이나 로그파일등이 탭으로 구분되었을 경우 패턴 스캔 및 처리에 유용한 명령어

awk 'pattern { action } input_file'
  • 한번에 한줄씩 입력을 읽고 각 줄을 필드로 나누어 입력 데이터와 일치하는 패턴 기반으로 작업을 수행한다
  • pattern : 어떤 action이 수행될지 조건을 지정하는 것
  • action : 패턴이 입력과 일치할때 수행하는 명령어
    print, printf, for, if등이 사용될 수 있다.

주요 Pattern

pattern기능
NR첫번째 줄번호를 가리키는 패턴
NF현재 줄에 있는 열의 수를 나타내는 패턴
$0전체 입력 라인을 나타내는 패턴
$nn번째 열(필드)를 나타내는 패턴

참고자료

https://www.ibm.com/docs/en/aix/7.2?topic=s-sed-command
https://www.ibm.com/docs/en/aix/7.2?topic=awk-command

profile
데이터를 탐구하는 개발자

0개의 댓글