sed 명령 학습 노트

3289 단어 linuxsed
1. sed 프로필
sed 는 비 대화 형 편집기 입 니 다.셸 을 사용 하여 결 과 를 저장 하지 않 는 한 파일 을 수정 하지 않 습 니 다.기본적으로 모든 출력 줄 이 화면 에 인쇄 됩 니 다.
sed 편집기 에서 파일 (또는 입력) 을 한 줄 씩 처리 하고 결 과 를 화면 에 보 냅 니 다.구체 적 인 과정 은 다음 과 같 습 니 다. 먼저 sed 는 현재 처리 하고 있 는 줄 을 임시 캐 시 영역 에 저장 한 다음 임시 버퍼 의 줄 을 처리 하고 완 료 된 후에 이 줄 을 화면 에 보 냅 니 다.sed 한 줄 을 처리 할 때마다 임시 버퍼 에서 삭제 한 다음 다음 줄 을 읽 고 처리 하고 표시 합 니 다.입력 파일 의 마지막 줄 을 처리 한 후 sed 는 실행 을 끝 냅 니 다.sed 는 모든 줄 을 임시 버퍼 에 저장 하고 이 복사 본 을 편집 하기 때문에 원본 파일 을 수정 하지 않 습 니 다.
2. 주소 지정
주 소 를 정 하 는 것 은 어떤 줄 을 편집 할 지 결정 하 는 데 쓰 인 다.주소 의 형식 은 숫자, 정규 표현 식 또는 이들 의 결합 일 수 있 습 니 다.
주소 가 숫자 라면 줄 번 호 를 표시 합 니 다. "$"라면 마지막 줄 을 표시 합 니 다. 예 를 들 어:
#     
sed -n '3p' example

#     10 30 
sed -n '10,30p' example

#  10      
sed -n '10,$' example

#     “first”      “python”  
sed -n '/first/,/python/p' example 

#    “linux”    10 
sed ‘/linux/,10d’ example  

#  example      test    
sed '/test/'d example 

3 명령 과 옵션
sed 명령 은 sed 에 게 주소 가 지정 한 각 입력 줄 을 어떻게 처리 하 는 지 알려 주 고 지정 한 주소 가 없 으 면 모든 입력 줄 을 처리 합 니 다.
3.1 sed 명령
 명령 하 다.
 기능.
 a\
 현재 줄 뒤에 한 줄 또는 여러 줄 을 추가 합 니 다. 여러 줄 일 때 마지막 줄 을 제외 하고 줄 끝 마다 "\"줄 을 계속 사용 해 야 합 니 다.
 c\
 이 기호 뒤에 있 는 새 텍스트 로 현재 줄 의 텍스트 를 바 꿉 니 다. 여러 줄 의 경우 마지막 줄 을 제외 하고 줄 의 끝 에 "\"줄 을 연결 해 야 합 니 다.
 i\
 현재 줄 앞 에 텍스트 를 삽입 합 니 다. 여러 줄 일 때 마지막 줄 을 제외 하고 줄 끝 마다 "\"줄 을 계속 사용 해 야 합 니 다.
 d
 줄 삭제
 h
 모드 공간의 내용 을 임시 저장 버퍼 로 복사 합 니 다.
 H
 모드 공간 에 있 는 내용 을 임시 저장 버퍼 에 추가 합 니 다.
 g
 임시 저장 버퍼 의 내용 을 모드 공간 으로 복사 하여 원래 의 내용 을 덮어 씁 니 다.
 G
 임시 저장 버퍼 의 내용 을 모드 공간 에 추가 하여 원래 내용 의 뒤에 추가 합 니 다.
 l
 인쇄 되 지 않 은 문자 목록
 p
 인쇄 줄
 n
 다음 입력 줄 을 읽 고 첫 번 째 명령 이 아 닌 다음 명령 부터 처리 합 니 다.
 q
 종료 혹은 종료 sed
 r
 파일 에서 입력 줄 읽 기
 !
 선택 한 줄 이외 의 모든 줄 에 명령 적용
 s
 다른 문자열 을 문자열 로 대체 합 니 다.
 g
 줄 내 전역 교체 진행
 
 w
 선택 한 줄 을 파일 에 쓰기
 x
 임시 저장 버퍼 와 패턴 공간의 내용 을 교환 합 니 다.
 y
 문 자 를 다른 문자 로 바 꿉 니 다 (정규 표현 식 에 y 명령 을 사용 할 수 없습니다)
 
3.2 sed 옵션
 옵션
 기능.
 -e
 여러 개의 sed 명령 을 입력 줄 에 적용 할 때 사용 하 는 여러 편집 을 진행 합 니 다.
 -n
 기본 출력 취소
 -f
 sed 스 크 립 트 의 파일 이름 지정
4 범례
#   tt  a   mytest
sed 's/a/mytest/g' tt

#   tt  a   you
sed 's/a/you/g' tt 
#    g  ,           test    mytest。   

#      
sed '1,2s/a/you/g' tt

#  -e        。 
sed -e '1,10d' -e 's/My/Your/g' tt 
#        1-10 。           My   Your。 
#            (                   ),              。 

#   ,                         
sed '/a/r tt1' tt 
#     tt      a,  tt1               

#         tt1   
sed '/a/w tt1' tt

#  tt  ,   “a”      “v”   mytest
sed '/a/{n;s/v/mytest/;}' tt

#    tt     a,       “you”
sed 's/a/&you/g' tt  


sed '1,20y/hrwang12/HRWANG^$/' 
# 1 20  ,     hrwang     , 1   ^, 2   $。 
#         y      。             。

좋은 웹페이지 즐겨찾기