본문 바로가기
Computer Science/[19-상] Linux Bash Script

[Linux_bash] \(back slash, escape character)의 의미

by gojw 2020. 3. 3.

리눅스 쉘 스크립팅에서는 특별한 의미를 갖는 기호들이 있다.

이런 기호들은 정규표현식으로 패턴을 찾기 위해 사용한다.

 

대표적으로,

^ 행의 시작
$ 행의 끝
. 하나의 문자
[] [] 안에 있는 집합 중 하나와 대응
[^ ] [] 안에 있는 집합에 속하지 않음
* 문자 뒤에 써서, 그 문자와 같은 문자가 0개 혹은 그 이상 존재함

 

이외에도 많은 문자들이 있는데, 만약 .이 있는 문자열을 찾고 싶을 때

grep "." filename

이렇게 쓰면 파일 안에 있는 모든 문자를 grep한다.

 

따라서 이런 경우에 

grep "\." filename

이런 식으로 escape해서 .이 특별한 의미를 지니지 않고, 문자 그대로 .을 나타낸다고 할 수 있다.

 

# 문제

① file1은 csv파일이다.

② 첫번째 필드가 아닌 필드에서 문자들 사이에 * 을 포함한 행을 찾는다.

 

grep ',.*\*.*,' file1

 

.* : 어떤 문자가 0개 또는 임의의 수와 대응

\* : 문자 그대로 *를 찾는다.

, : csv 파일은 ,로 이어져 있기 때문에 앞에 ,가 있으면 첫번째 필드가 아니다.

댓글