lib.sh
내 스크립트에 포함할 수 있는 상수 및 함수의 "라이브러리"를 갖습니다( script.sh
).
. /myfolder/lib.sh
......
스크립트에 포함된 파일(예: ./myfolder/lib.sh
로 대체된 파일 lib.sh
)을 병합하는 방법이 있습니까?
답변1
사용 sed
:
sed -i.bak '\|^\. /myfolder/lib\.sh| {
r /myfolder/lib.sh
d
}' script.sh
이 스크립트의 기능은 다음과 같습니다.
\|^\. /myfolder/lib\.sh| { ... }
=> 중괄호로 시작하는 줄을 찾아. /myfolder/lib.sh
중괄호 안의 명령을 실행합니다.r /myfolder/lib.sh
=> 출력 내용/myfolder/lib.sh
d
=> 행 삭제(. /myfolder/lib.sh
)
물론 다른 행은 그대로 유지됩니다.
답변2
테스트되지 않음: GNU awk 사용
gawk -i inplace '
$1 == "." {system("cat " $2); next}
{print}
' script.sh