sed: 다음 입력 파일로 점프

sed: 다음 입력 파일로 점프

일치 항목이 발견되는 즉시 현재 입력 파일 처리를 중지 할 수 있는 ' greps -m1또는 awk's 와 유사한 옵션이나 명령이 있습니까 (이후 후속 입력 파일을 계속 처리하는 동안)?nextfilesedsed

예를 들어:

find . -type f -exec sed -ns '/pattern/{<do stuff>; p; <next>}' {} +

<next>현재 입력 파일 읽기를 중지하는 명령은 어디에 있습니까? quit 명령( q)은 종료(후속 입력 파일 삭제)만 발생시키므로 적합하지 않습니다 sed. 따라서 입력 파일 배치당 최대 하나의 일치 항목이 발견됩니다.

답변1

스마트 검색 및 바꾸기 예시:

GNU sed

패턴이 처음 발생한 후 파일/입력 처리를 중지합니다(의 옵션 및 's 덕분 sed-s) find.+

find . -type f -exec sed -ns '0,/pattern/s/patter/replacement/p' "{}" +

BSD sed

BSD에는 옵션이 sed부족한 것 같습니다 -s. 그래서 나는 사용하고 있습니다산딥제안.

sed패턴이 처음 발생한 후에 종료하면 다음 파일이 find실행됩니다 .sed

find . -type f -exec sed -n '0,/pattern/p;s/pattern/replacement/p;q' "{}" \;

관련 정보