find . -name "*찾을단어" -exec perl -pi -e '바꿀단어' {} \;
참쉽죠잉?
복붙을 이용해서 활용해봅시다~
추가로
그럼...하나의 폴더에서만 찾아서 바꾸고싶다?
find <대상 경로> -type f -exec sed -i 's/<변경할 텍스트>/<변경될 텍스트>/g' {} +
요렇게 실해아면 참~ 쉽죠?
샘플
[root@localhost root]# find /etc/etc -type f -exec sed -i 's/12345/abced/g' {} +
/etc/etc 폴더안에 있는 모든 파일에서 12345 단어를 abced 로 치환한다.
근데 폴더는 안되네?
디렉토리는 따로 해줘야한다
아래 내용 참고
추가로 하위 모든 폴더에 적용하려면 아래 코드를 이용한다.'
특정 폴더에 'TEST' 문자열이 들어가는 폴더나 파일의 이름을 'TEST' 대신 'test' 로 바꾼다면
예) TEST_aa -> test_aa
$ find ./ -name "*TEST*" | sed -e 'p' -e "s/TEST/test/g" |xargs -n 2 mv
특정 폴더에 'TEST' 문자열이 들어가는 폴더만 이름을 'TEST' 대신 'test' 로 바꾼다면
$ find ./ -name "*{TEST}*" -type d | sed -e 'p' -e "s/TEST/test/g" |xargs -n 2 mv
그런데도 안된다?
rename가 설치안되서 그렇다
rename를 설치해주자
yum install rename
참고 rename 설치 우분투와 데비안 sudo apt update sudo apt install rename CentOS 및 Fedora sudo yum install rename Arch Linux yay perl-rename |
반응형
'얕고넓은지식 > linux' 카테고리의 다른 글
리눅스 mariadb mysql 손상 복원 (0) | 2023.03.27 |
---|---|
리눅스 db 위치 (0) | 2023.03.27 |
리눅스 멈추는 이유 로그 보기 프리징 (0) | 2023.02.20 |
리눅스 파일이동 특정폴더 제외 (0) | 2023.02.11 |
리눅스 특정폴더 제외하고 이동 (0) | 2023.02.11 |
리눅스 현재폴더 데이터 상위파일로 모두 이동 (0) | 2023.02.11 |
리눅스 curl 설치 확인방법 (0) | 2022.12.18 |
mysql 특정 단어 포함 게시글 행 삭제 (0) | 2022.04.10 |
리눅스 파일내에 단어치환 (0) | 2022.03.20 |
인덱스(index) 페이지에 특정 게시판 리스트로 하기 게시판 첫화면 리스트로 amina (0) | 2022.03.08 |