다음 파일이 있습니다. 총 4개의 파일이 있습니다:
cert1.pem chain1.pem fullchain1.pem privkey1.pem
각 파일의 꼬리 번호를 잘라내고 싶습니다( 1
여기). 쉘 스크립트를 사용하여 이를 어떻게 자동화할 수 있습니까? 나는 일부 명령에 익숙하지만 이런 종류의 일괄 처리를 처리하기 위한 쉘 스크립트를 작성하는 데는 능숙하지 않다고 생각합니다.
답변1
후행 숫자가 단일 숫자이고 둘 다 .pem
파일인 경우 매개변수 확장을 사용하여 숫자와 확장자를 제거한 다음 확장자를 바꿀 수 있습니다.
for file in cert1.pem chain1.pem fullchain1.pem privkey1.pem
do
mv "$file" "${file%%?.pem}.pem"
done
%%
매개변수 확장은 단일 문자( ) 중 가장 긴 후행 일치 항목을 제거하는 방식으로 작동하며 ?
, .pem
완료되면 수동으로 .pem
끝에 다시 추가합니다.
certX.pem
이는 또는 fullchain-.pem
해당 ?
문자가 단일 문자로 확장되는 것과 같은 파일 이름도 변경된다는 점에 유의하십시오 .
위의 예에서는 이름을 바꿀 파일을 수동으로 나열했기 때문에 이것이 더 안전해졌습니다. 비슷한 접근 방식을 사용할 수도 있습니다.
for file in *1.pem
do
mv "$file" "${file%%?.pem}.pem"
done
....을 1.pem
사용하여 파일을 명시적으로 반복합니다.
설정:
$ ls
cert1.pem chain1.pem fullchain1.pem privkey1.pem
구현하다:
$ for file in cert1.pem chain1.pem fullchain1.pem privkey1.pem
do
mv "$file" "${file%%?.pem}.pem"
done
결과:
$ ls
cert.pem chain.pem fullchain.pem privkey.pem