[Linux] 특정 문자열 기준으로 출력하기

sed 명령어를 활용하여 특정 문자열을 기준으로 출력을 제어해봅니다.

 

테스트 시 활용할 text 파일 내용

# cat text
An apple is a fruit.
The sky is blue.
Today is Monday.
Cutting paper with scissors.
Trees grow on the ground.
The sun rises in the east.
The earth is round.
The winter night air is cold.
Drinking water every morning.
The bus has already left.

 

특정 문자열이 포함된 문자열부터 끝까지 출력하기

문자열 Cutting paper 부터 끝까지 출력

# cat text | sed -n '/Cutting paper/,$p'
Cutting paper with scissors.
Trees grow on the ground.
The sun rises in the east.
The earth is round.
The winter night air is cold.
Drinking water every morning.
The bus has already left.

-n 옵션 : 패턴에 일치하는 값만 출력 / 콤마(,) : 범위 지정 / $ : 문자열 끝 명시 / p : 출력

 

특정 문자열부터 특정 문자열까지 출력하기

문자열 Cutting paper 부터 문자열 Drinking 까지 출력

# cat text | sed -n '/Cutting paper/,/Drinking/p'
Cutting paper with scissors.
Trees grow on the ground.
The sun rises in the east.
The earth is round.
The winter night air is cold.
Drinking water every morning.

-n 옵션 : 패턴에 일치하는 값만 출력 / 콤마(,) : 범위 지정 / p : 출력

 

특정 문자열부터 특정 문자열까지 제외하고 출력하기

문자열 Cutting paper 부터 문자열 Drinking 까지 제외하고 출력

# cat text | sed '/Cutting paper/,/Drinking/d'
An apple is a fruit.
The sky is blue.
Today is Monday.
The bus has already left.

콤마(,) : 범위 지정 / d : 제외

 

처음부터 특정 문자열까지 출력하기

문자열 Cutting paper 까지 출력

# cat text | sed -n '1,/Cutting paper/p'
An apple is a fruit.
The sky is blue.
Today is Monday.
Cutting paper with scissors.

-n 옵션 : 패턴에 일치하는 값만 출력 / 1 : 첫번째 열 / p : 출력

 

특정 문자열부터 특정 문자열까지의 범위에서 문자열 변경

문자열 sky 부터 문자열 night까지의 범위 중 blue 문자열을 dark 로 변경

# cat text | sed "/sky/,/night/s/blue/dark/g"
An apple is a fruit.
The sky is dark.
Today is Monday.
Cutting paper with scissors.
Trees grow on the ground.
The sun rises in the east.
The earth is round.
The winter night air is cold.
Drinking water every morning.
The bus has already left.

콤마(,) : 범위 지정 / s : 문자열 치환 / g : 전체 적용

'Linux' 카테고리의 다른 글

[Linux] RPM 패키지 상세 정보 확인하기  (0) 2023.05.09
[Linux] Rocky 설치하기  (0) 2023.05.03
[Linux] 문자열 앞, 마지막 부분 출력하기  (0) 2023.01.10

+ Recent posts