홈으로 | 무료회원가입 | 아이디/비번찾기
추천음악방송
grep perl 조합으로 파일내 문자열을 한꺼번에 변경하기
11년 전
수천, 수만개의 파일이 있는데 모든 파일을 열어 "korea"를 "대한민국"으로 변경해야한다면 어떻게 해야할까?

아래에 설명한 명령어 한줄이면 간단하게 해결할 수 있다.

단 특정단어를 다른단어로 변경을 하는것이라 "korean"을 "대한민국n" 으로 변경할 수도 있으니

찾는문자열 패턴을 명확하게 지정해야할 것이다.



grep -R --files-with-matches '찾는문자열' ./ --null | xargs -0 perl -pi -e 's/찾는 문자열/변경문자열/'


특정 디렉토리 이하 모든 파일을 검색하여 찾고자하는 문자열을 포함한 파일을 변경문자열로 변경하는 명령어 조합니다.



-R      : 하위 디렉토리까지 검색  

--files-with-matches : 문자열을 포함하는 파일의 이름만 출력

./       : 찾고자하는 디렉토리

--null  : 파일명 대신 0 byte 문자를 출력한다.
           예를들면, grep -IZ 는 유용한 newline 문자대신 각 파일명뒤에 0byte를 출력한다.
           이 옵션은 newline과 같은 유용한 캐릭터를 포함하는 파일명까지도 출력을 명쾌하게 해준다. \
           이 옵션은 임의의 파일명을 처리하는 find -print0, perl -0, sort -z, xargs -0과 같은 명령어와 함께 사용될 수있고
           newline 캐릭터를 포함하는 그 자체로도 사용할 수있다



xargs perl조합을 바로 연결하지 말고 우선 파일목록을 확보한뒤에 백업을 해 두는것도 잊지말자.



mkdir /backup
grep -R --files-with-matches '찾는문자열' ./ > findlist.txt
perl -pi -e 's/^/cp /' findlist.txt
perl -pi -e 's/$/  \/home\/backup/' findlist.txt
sh findlist.txt
grep -R --files-with-matches '찾는문자열' ./ --null | xargs -0 perl -pi -e 's/찾는 문자열/변경문자열/'


추천추천 : 568 추천 목록
번호 제목
3,035
 아이프레임(iframe) 비율 유지하면서 크기 조절하는 방법
3,034
 PHP 배열에서 무작위로 하나 뽑아주는 array rand() 함수
3,033
 PHP 정규식 정리
3,032
 PHP 정규식을 활용한 태그 및 특정 문자열 제거 및 추출 방법
3,031
 php 크롤링 또는 파싱 함수, 정규식 모음
3,030
 제이쿼리 기본 명령어
3,029
 웹페이지 가로 모드세로 모드 인식하기
3,028
 모바일 웹 화면 강제 회전(가로모드 고정)
3,027
 [HTML5]에서 frameset 대체 방법과 iframe 속성
3,026
 HTML <Audio> 사용법
3,025
 윈도우10 시스템파일 손상 (초간단 오류 복구방법!!)
3,024
 PHP 파일 존재 여부 파악하기(로컬 파일 존재 및 원격지 파일 존재)
3,023
 [CSS] 박스 세로 가운데 중앙 정렬 6가지
3,022
 CSS Layout 수평 & 수직 정렬
3,021
 여러 도메인들 간 쿠키 공유하기
3,020
 태그 사이에 있는 텍스트를 추출
3,019
 [JQuery] textbox focus on off일때 숫자 콤마 보여주기
3,018
 쿠키 생성,가져오기,삭제
3,017
 사용자 함수 모음
3,016
 마우스,키보드 제한 ( 오른쪽클릭,드래그,영역선택등..)
3,015
 [HTML5] <video> - DOM으로 제어하기
3,014
 HTML5 video 태그에서 영상 좌우반전
3,013
 PHP - 특정 태그 및 문자열 추출, 제거
3,012
 [PHP] define과 defined의 차이
3,011
 우클릭 완벽차단 스크립트
목록
뮤직트로트 부산광역시 부산진구 가야동 ㅣ 개인정보취급방침
Copyright (C) musictrot All rights reserved.