와일드카드/정규 표현식을 사용하여 존재하지 않는 파일 선택

와일드카드/정규 표현식을 사용하여 존재하지 않는 파일 선택

*.jpg수백 개의 파일을 *.webp다음 으로 변환 하려고 합니다 .libwebpmacOS에서. 특히 명령줄 도구를 사용하고 싶습니다.cwebp변환을 수행합니다. 작동 방식은 다음과 같습니다.

cwebp <input_file>.jpg -o <output_file>.webp

이름이 about.인 내 *.jpg파일은 IMG_20160227_110640.jpg이라는 디렉토리에 저장되어 있습니다 root. 문제는 *.webp변환을 수행할 때 파일이 존재하지 않기 때문에 파일 이름을 cwebp.

cwebp IMG_20160227_110640.jpg -o IMG_20160227_110640.webp

하지만 수백 줄의 명령이 있는데 수백 줄의 명령을 입력하고 싶지 않습니다. 정규식/스크립트를 사용하여 변환을 자동화하려면 어떻게 해야 합니까?

답변1

for매개변수 확장과 결합된 루프를 사용하십시오 .

for f in *.jpg; do cwebp "$f" -o "${f%.jpg}.webp"; done

LESS='+/Parameter Expansion' man bashBash에 대한 내용 도 참조하세요 .

하지만,매개변수 확장은 POSIX에 지정됩니다.;Bash에만 국한된 것은 아닙니다. (Bash에는 일부 확장이 있을 수 있습니다.) 위 명령은 모든 POSIX 시스템에서 작동합니다.

관련 정보