728x90
#####파일 내 문자열 치환#####
sed -i 's/기존문자/바꿀문자/g' 파일
sed -i 's/aaa/bbb/g' *.sh
#####파일 내 경로 치환#####
sed -i 's|기존경로|바꿀경로|g' 파일
sed -i 's|/app/wildfly/wildfly_2611/bin/domain.sh|/sw/wildfly26/bin/domain.sh|g' *.sh
vi 치환 명령 요약
|
:s/old/new
|
현재 행의 처음 old를 new로 교체
|
|
:s/old/new/g
|
현재 행의 모든 old를 new로 교체
|
|
:10, 20s/old/new/g
|
10번째 행부터 20번째 행까지 모든 old를 new로 교체
|
|
:-3, +4s/old/new/g
|
현재 커서 위치에서 3행 위부터 4행 아래까지
old를 new로 교체
|
|
:%s/old/new/g
|
문서 전체에서 old를 new로 교체
|
|
:%s/old/new/gc
|
문서 전체에서 old를 new로 확인하며 교체
|
|
:g/pattern/s/old/new/g
|
pattern이 있는 모든 행의 old를 new로 교체
|
|
:g/pattern/s//new/g
|
:%s/old/new/g와
|
파일 내 문자열 검색 https://lascrea.tistory.com/62
형식)
find 검색할 디렉토리 -name "*" | xargs grep 검색할 내용
ex)
find ./ -name "*.sh" | xargs grep "mvtest"
파일 내 문자열 치환
바꿀 파일들이 있는 특정 디렉토리에서 실행
형식)
(linux) find ./ -name "파일 이름" -exec sed -i 's/찾는 문자열/바꿀 문자열/g' {} \;
(unix) find ./ -name "파일 이름" -exec perl -pi -e 's/찾는 문자열/바꿀 문자열/g' {} \;
ex)
find ./ -name "*.sh" -exec sed -i "s/sw/was/weblogic/sw/mvtest/g" {} \;
※ s/sw/was/weblogic/12.2.1.4/wlserver/sw/mvtest/12.2.1.4/wlserver/g
위의 예시에서는 \로 경로에 있는 /를 문자로 인식하도록 해준 것임.
경로 길면 그냥 s/was/weblogic/mvtest/g 로 하는 방법도 있음.
옵션)
-exec : 앞선 명령어의 결과를 입력으로 받아 \; 라는 표기자를 만날때까지 읽고 실행. 즉, exec 커맨드의 끝을 ; 으로 표기해줘야 함
+ : 인자를 연속으로 입력해서 커맨드 한번으로 실행하게끔 해줌
ex) /home/test 하위 파일 중 크기가 5MB 이상인 파일의 출력을 인자로 하여 chmod 명령어를 실행.
$ find /home/test -type f -size +5M -exec chmod 755 {} +
{} : 찾은 파일들에 하나씩 대입됨을 의미
xargs(eXtended ARGumentS) : exec 커맨드의 + 옵션과 유사. 앞선 명령어의 결과를 입력받아 인자를 연속으로 나열하여 커맨드 실행

sed (Stremlined EDitor) : 치환, 삭제, 삽입과 같은 기능을 사용할 때 사용하는 명령어
-i : 작성하면 출력되지 않고 바로 파일에 적용되고, 생략하면 치환된 결과가 cat을 사용한 것처럼 출력됨
-g : 작성하면 모든 문자열에 적용되고, 생략하면 첫 번째 하나만 바뀜.
perl :

용량이 0인 비어있는 파일 검색
find / -empty -exec ls -l {} \;
특정 소유자의 파일 찾기
find / -uid 500 -exec ls -l {} \;
특정 사용자의 소유파일들 검색
find / -user nestgoer -print
ex) /sw/was/weblogic -> /sw/mvtest로 경로 변경
find ./ -name "*.sh" -exec sed -i "s/sw/was/weblogic/sw/mvtest/g" {} \;
'ETC' 카테고리의 다른 글
| Forward Proxy & Reverse Proxy (0) | 2024.07.17 |
|---|---|
| Session ID 분석 (0) | 2023.08.24 |
| [LINUX] 초기 설정으로 80포트 사용 시 나오는 에러 (0) | 2021.06.23 |