sed 명령 초기 시험

2800 단어
1 、 sed 용법 소개
sed 는 비 대화 형 텍스트 흐름 편집기 입 니 다.내 보 낼 텍스트 복사 파일 이나 표준 입력 을 편집 합 니 다.
sed 를 사용 할 때 기억 해 야 할 사실은 명령 이 무엇이든 sed 는 초기 화 파일 과 접촉 하지 않 습 니 다. 복사 만 한 다음 에 모든 변경 사항 이 파일 로 바 뀌 지 않 으 면 화면 에 출력 합 니 다.
sed 는 비 상호작용 편집기 이기 때문에 줄 번호 나 정규 표현 식 을 통 해 변경 할 텍스트 줄 을 지정 해 야 합 니 다.
1) sed 는 파일 의 텍스트 줄 이나 표준 입력 된 몇 가지 형식 에서 데 이 터 를 읽 고 편집 버퍼 로 복사 한 다음 명령 줄 이나 스 크 립 트 의 첫 번 째 명령 을 읽 고 이 명령 찾기 모드 를 사용 하여 다 중 위치 추적 줄 번 호 를 편집 합 니 다.명령 이 끝 날 때 까지 이 과정 을 반복 합 니 다.2) sed 세 가지 방식 을 호출 합 니 다. 명령 행 에 명령 을 입력 합 니 다.sed 명령 을 스 크 립 트 파일 에 삽입 하고 sed 를 호출 합 니 다.sed 명령 을 스 크 립 트 파일 에 삽입 하고 sed 스 크 립 트 를 실행 할 수 있 도록 합 니 다.  sed 명령 줄 의 형식 을 사용 합 니 다: sed [옵션] sed 명령 입력 파일 주의: 명령 줄 에서 sed 명령 을 사용 할 때 실제 명령 은 작은 따옴표 를 추가 하고 sed 도 작은 따옴표 를 추가 할 수 있 습 니 다.sed 스 크 립 트 파일 을 사용 하 는 형식 은:  sed [옵션] - f sed 스 크 립 트 파일 입력 파일  sed 명령 해석 기 가 있 는 sed 스 크 립 트 파일 의 첫 줄 을 사용 하려 면 sed 스 크 립 트 파일 [옵션] 입력 파일 입 니 다.  3), sed 명령 의 옵션 n: 인쇄 하지 않 습 니 다. sed 는 편집 줄 을 표준 출력 에 쓰 지 않 습 니 다. 기본적으로 모든 줄 을 인쇄 합 니 다.p 명령 은 편집 줄 을 인쇄 하 는 데 사용 할 수 있 습 니 다.c: 다음 명령 은 편집 명령 f: sed 스 크 립 트 파일 을 호출 하고 있다 면 이 옵션 을 사용 하 십시오.이 옵션 은 sed 스 크 립 트 파일 이 sed - f my scirpt. sed input 와 같은 모든 sed 명령 을 지원 하 는 것 을 알려 줍 니 다.file 。여기 my script. sed 는 sed 명령 을 지원 하 는 파일 입 니 다. 
2, sed 출력 저장
초기 화 파일 에 접촉 하지 않 기 때문에 변경 내용 을 저장 하려 면 모든 출력 을 파일 로 간단하게 바 꾸 면 됩 니 다.
$sed 'some-sed-commands' input-file > myoutfile
 
3. sed 를 사용 하여 파일 에서 텍스트 를 조회 하 는 방식
 
sed 입력 파일 을 탐색 할 때 기본 값 은 첫 줄 부터 두 가지 방식 으로 텍스트 를 찾 습 니 다.
1) 줄 번 호 를 사용 합 니 다. 간단 한 숫자 나 줄 번호 범위 2) 정규 표현 식 일부 편집 명령 을 사용 할 수 있 습 니 다.
P: 일치 하 는 줄 인쇄 =: 파일 줄 번호 표시 a /: 줄 번호 지정 후 새 텍스트 정보 추가 i /: 줄 번호 지정 후 새 텍스트 정보 삽입 d: 포 지 셔 닝 줄 삭제 c /: 새 텍스트 로 포 지 셔 닝 텍스트 대체 s: 교체 모드 로 해당 모드 대체 r: 다른 파일 에서 텍스트 읽 기 w: 텍스트 를 파일 로 쓰기 q: 첫 번 째 모드 가 일치 한 후 종료또는 즉시 출시, l: 8 진 ASCII 코드 와 같은 값 의 제어 문 자 를 표시 합 니 다 {}: 포 지 셔 닝 줄 에서 실 행 된 명령 그룹 n: 다른 파일 에서 텍스트 다음 줄 을 읽 고 다음 줄 g 에 추가 합 니 다. 모드 2 를 / pattern n / y: 전송 문자 n: 다음 입력 줄 로 연결 합 니 다.줄 을 뛰 어 넘 는 패턴 이 구문 sed 와 정규 표현 식 과 일치 하도록 허용 합 니 다.
 4. 테스트
function removeLineForAssert(){
       #$1  pattern to delete
       #$2  file name
       if [ -f  ${CURL_LOG_DIRECTORY}/$2.resp ];then
          sed  /$1/d  ${CURL_LOG_DIRECTORY}/$2.resp >${CURL_LOG_DIRECTORY}/new.txt
          if [ -f ${CURL_LOG_DIRECTORY}/new.txt ];then
                rm  -r ${CURL_LOG_DIRECTORY}/$2.resp
                mv  ${CURL_LOG_DIRECTORY}/new.txt  ${CURL_LOG_DIRECTORY}/$2.resp
          else
             echo "Failed to remove line from $2 to assert!"
          fi

       else

          echo "Invalid input file!"

       fi
}

줄 삭제, regex 지원, 문법 은 다음 과 같 습 니 다.
sed  /duration/d  test.txt>>new.txt
sed  /pattern/d  filename > > 방향 바 꾸 기

좋은 웹페이지 즐겨찾기