grep 을 통해서 해당 text가 포함 된 파일을 찾고, 이 파일들에서 일정 부분을 수정하는 코드를 작성하려고 한다.

LINUX에서는 되는 명령어가 MAC에서는 옵션의 차이로 안되는 상황이 있다.

$ grep 'jquery-3.3.1.min.js' -rl . | xargs sed -i '' -e '/jquery-3.3.1.min.js/jquery-3.4.1.min.js/g'

-r : recursive 하위폴더까지 검색

-l : list 찾은 파일들을 리스트.
pipe 구문을 사용하기 위해서 이 옵션을 추가 한다.

xargs는 유닉스 및 유닉스 계열 운영 체제의 명령어로 표준 입력을 통해 명령 줄을 만들고 실행하는 데 사용한다

-i : 출력하지 않고, 파일로 저장한다.

-e : EOF 또는 지정된 문자열이 나올때 까지 계속 xargs 를 통한 필터링을 수행.

파일 마커 문자열의 논리적 끝을 eof-str로 설정하십시오. 파일 마커 문자열의 논리적 끝이 입력 행으로 발생하면 나머지 입력은 무시됩니다. eof-str을 생략 ( '-e')하거나 공백 ( '-e'또는 '-E')하면 파일 마커 문자열의 논리적 끝이 없습니다. 이 옵션의‘-e’형식은 POSIX 호환‘-E’옵션 대신 사용되지 않으며 대신 사용해야합니다. GNU xargs 버전 4.2.9부터 xargs의 기본 동작은 파일 마커 문자열의 논리적 끝이 아닙니다. POSIX 표준 (IEEE Std 1003.1, 2004 Edition)이이를 허용합니다.
‘-d’또는‘-0’옵션이 유효한 경우 파일 마커 문자열의 논리적 끝은 특별히 처리되지 않습니다. 즉, 이러한 옵션 중 하나가 적용되면‘-E’를 사용하더라도 전체 입력 파일을 읽습니다.

반응형

+ Recent posts