폴더 아래:
/var/userTN/applo folder
다음 경로를 포함하는 약 100개의 쉘 스크립트가 있습니다.
GLOBAL_PATH=/export/pop/PLW5
폴더 아래의 모든 스크립트 경로를 바꾸고 싶습니다.
/var/userTN/applo
이 길로
GLOBAL_PATH=/export/lld/sat
경로를 바꾸는 방법:
GLOBAL_PATH=/수출/팝/PLW5
폴더 아래의 모든 파일에서:
/var/userTN/applo
find + sed 또는 다른 방법을 사용하시겠습니까? (Perl 한 줄 솔루션으로)
논평:
대체 항목이 정확히 일치해야 합니다."GLOBAL_PATH=/수출/팝/PLW5"
예를 들어
경로->GLOBAL_PATH=/수출/팝/PLW51(교체하면 안 돼요!)
답변1
사용 sed
:
sed -i.bak 's#^\(GLOBAL_PATH=/export/\)pop/PLW5$#\1lld/sat#' /var/userTN/applo/*
.bak
백업하지 않으려면 원본 파일이 다음 확장자로 백업됩니다.
sed -i 's#^\(GLOBAL_PATH=/export/\)pop/PLW5$#\1lld/sat#' /var/userTN/applo/*
예:
$ sed 's#^\(GLOBAL_PATH=/export/\)pop/PLW5$#\1lld/sat#' <<<'GLOBAL_PATH=/export/pop/PLW5'
GLOBAL_PATH=/export/lld/sat