일치 항목이 발견되는 즉시 현재 입력 파일 처리를 중지 할 수 있는 ' grep
s -m1
또는 awk
's 와 유사한 옵션이나 명령이 있습니까 (이후 후속 입력 파일을 계속 처리하는 동안)?nextfile
sed
sed
예를 들어:
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' "{}" \;