절대 경로가 있는 파일 이름이 포함된 파일이 있습니다.
해당 경로 중간에는 변수 디렉토리가 있습니다. 변수 부분을 하드코딩할 때마다 제대로 작동하지만 변수 이름으로 바꾸면 해당 sed
부분이 작동하지 않습니다.
이 sed
부분이 삭제 패턴 또는 경로입니다.
file=`echo $one_file | sed 's:/dir1/dir2/$VAR/last_dir/::'`
답변1
작은 따옴표(하드 따옴표라고도 함)를 사용하면 변수 이름이 확장되지 않습니다. 부드러운 따옴표라고도 하는 큰따옴표를 사용해야 합니다.
sed "s:/dir1/dir2/$var/Last_dir/::"
또는 따옴표를 이스케이프 처리하세요.
sed 's:/dir1/dir2/'"$var"'/Last_dir/::'
$var
또한 콜론, 점, 별표, 개행 또는 백슬래시 문자가 포함되지 않았 는지 확인해야 합니다 [
. 포함된 경우 이스케이프됩니다.