문자열에 괄호가 포함된 경우 Bash 문자열 조작

문자열에 괄호가 포함된 경우 Bash 문자열 조작

template이라는 파일로 가득 찬 디렉토리가 있습니다.

xxx[0-9][0-9][0-9[0-9]ss(wrx-mmm).zip

zip 파일에는 파일이 포함되어 yrq000.dat있으며 파일의 압축을 풀 때 해당 파일을 덮어쓰고 싶지 않습니다.

처리 스크립트를 작성 중이지만 일반 파일의 이름을 소스 zip과 관련된 이름으로 지정하고 다음 방법을 확인합니다.

for f in $(ls xxx*)
do
  uniquename="${f%%(wrx.*zip}"
done

문자열에서 왼쪽 대괄호를 제거하는 방법을 모르겠습니다.

bash 문자열 조작이 가능합니까? 즉, 작동하지 않습니다. 제대로 작동하려면 무엇을 추가하거나 제거해야 합니까?

답변1

패턴에서 점을 제거해 보세요. 예:

for f in xxx*;
do
    uniquename="${f%%(wrx*zip}";
    echo "${uniquename}";
done

형식의 이름을 가진 파일을 가져와서 xxx[0-9][0-9][0-9[0-9]ss(wrx-mmm).zip형식의 문자열로 변환합니다 xxx[0-9][0-9][0-9[0-9]ss. 이것이 당신이 달성하고 싶은 것입니까?

관련 정보