본문 바로가기

개발자 레니는 지금 -/OS와 친해지는 중

[ Ubuntu ] 파일의 특정 행만 출력하고 싶어 ㅠ.ㅠ

Ubuntu

Print specific rows only from file

#Ubuntu 16.04 LTS


#아래의 내용보다 자세한 사항을 알고 싶으면, 하단의 "#참조내용" 클릭 후 2번 항목을 클릭하세요.

#우분투는 버전별로 작동이 상이할 수 있으니, 참고부탁드립니다 



Sed란?

Steamlined EDitor

대화형 기능이 없는 편집기이다. 명령행에서 직접 편집 명령어와 파일을 지정하여 작업한 후 결과를 화면으로 확인한다.

sed 편집기는 원본을 손상하지 않는다. 리다이렉션을 이용하여 편집 결과를 파일로 저장하여 확인 할 수 있다.



sed "주소지정"

$ sed -n 'start, endp' filename

start, end 에는 숫자 형태가 들어간다.


편집하고자 하는 행을 선택하는 것, 이 주소는 숫자나 정규표현식 또는 둘의 조합으로 표현한다.

주소를 지정하지 않은 경우 입력 파일 전체 행에 대하여 작업을 진행한다.



명령어와 옵션

a. 명령어

a : 현재 행에 하나 이상의 새로운 행을 추가한다.

c : 현재 행의 내용을 새로운 내용으로 바꾼다.

i : 현재 행의 위에 삽입한다.

d : 행을 삭제한다.

l : 출력되지 않는 특수문자를 출력한다.

p : 행을 출력한다.

n : 다음 입력 행을 첫 번째 명령어가 아닌 다음 명령어에서 처리하게 한다.

q : sed를 종료한다.

r : 파일로부터 행을 읽어온다.

! : 선택된 행을 제외한 나머지 전체 행에 명령어를 적용한다.

s : 문자열을 치환한다.


b. 옵션

-e : 다중 편집시 사용.

-f : sed 스크립트 파일 지정에 사용.

-n : 출력을 생략한다.