디렉토리의 모든 파일 이름을 $filename_h에서 $filename_half로 변경하시겠습니까?
아주 간단합니다.
이름 변경 방법
05_h.png
06_h.png
로.
05_half.png
06_half.png
적어도, 저는 그것이 간단하다고 생각하지만, 여러분이 이미 알고 있지 않다면 이런 종류의 것을 구글에 검색하는 것은 어렵습니다.
감사합니다.
외부 명령을 호출할 필요 없이 bash만 사용하면 됩니다.
for file in *_h.png
do
mv "$file" "${file/_h.png/_half.png}"
done
추가 안 함#!/bin/sh
원라이너가 필요한 고객:
for file in *.png; do mv "$file" "${file/_h.png/_half.png}"; done
해라rename
명령:
rename 's/_h.png/_half.png/' *.png
업데이트:
사용 예:
컨텐츠를 작성합니다.
$ mkdir /tmp/foo
$ cd /tmp/foo
$ touch one_h.png two_h.png three_h.png
$ ls
one_h.png three_h.png two_h.png
테스트 솔루션:
$ rename 's/_h.png/_half.png/' *.png
$ ls
one_half.png three_half.png two_half.png
for f in *.png; do
fnew=`echo $f | sed 's/_h.png/_half.png/'`
mv $f $fnew
done
또는 한 줄로:
for f in *.png; do mv "$f" "$(echo $f | sed 's/_h.png$/_half.png/g')"; done
당신은 순수한 bash 솔루션을 찾고 계십니까?많은 접근법이 있지만, 여기 하나가 있습니다.
for file in *_h.png ; do mv "$file" "${file%%_h.png}_half.png" ; done
이것은 현재 디렉터리에서 끝나는 유일한 파일을 가정합니다._h.png
이름을 변경할 항목입니다.
훨씬 더 구체적으로.
for file in 0{5..6}_h.png ; do mv "$file" "${file/_h./_half.}" ; done
그 두 예가 당신의 유일한 파일이라고 가정합니다.
일반적인 경우, 의 파일 이름 변경에 대해서는 이전에 설명한 바 있습니다.
사용rename
perl로 작성된 유틸리티입니다.기본적으로 사용할 수 없을 수도 있지만...
$ touch 0{5..6}_h.png
$ ls
05_h.png 06_h.png
$ rename 's/h/half/' *.png
$ ls
05_half.png 06_half.png
for i in *_h.png ; do
mv $i `echo "$i"|awk -F'.' '{print $1"alf."$2}'`
done
저도 비슷한 질문이 있었습니다.설명서에서 이름 바꾸기는 다음과 같이 설명되어 있습니다.
rename [option] expression replacement file
이렇게 사용할 수 있습니다.
rename _h _half *.png
코드에서 '_h'는 당신이 찾고 있는 표현입니다.'_half'는 대체할 패턴입니다.'*.png'은 가능한 대상 파일을 찾고 있는 파일 범위입니다.
이것이 c에 도움이 되기를 바랍니다.
배치 이름 변경 옵션을 사용하여 다른 접근 방식을 수동으로 사용할 수 있습니다.
파일 -> 파일 사용자 지정 명령 -> 배치 이름 변경을 마우스 오른쪽 단추로 클릭하면 h.를 반으로 바꿀 수 있습니다.
WinSCP 등을 사용하는 Linux 기반 GUI에서 작동합니다.
라이너 하나:
for file in *.php ; do mv "$file" "_$file" ; done
답변 세트가 완료되었지만 누락된 것을 하나 더 추가해야 합니다.
for i in *_h.png;
do name=`echo "$i" | cut -d'_' -f1`
echo "Executing of name $name"
mv "$i" "${name}_half.png"
done
파일 접두사의 이름을 바꿔야 했고 다음과 같은 솔루션을 사용하여 답을 찾았습니다.
for i in h_*; do mv ${i/#h_/half_}; done
패턴이 #로 시작하는 경우 확장된 매개 변수 값의 시작 부분에서 일치해야 합니다.패턴이 %로 시작하는 경우 확장된 매개 변수 값의 끝에서 일치해야 합니다.
부터man bash
사용rename
유틸리티:
rc@bvm3:/tmp/foo $ touch 05_h.png 06_h.png
rc@bvm3:/tmp/foo $ rename 's/_h/_half/' *
rc@bvm3:/tmp/foo $ ls -l
total 0
-rw-r--r-- 1 rc rc 0 2011-09-17 00:15 05_half.png
-rw-r--r-- 1 rc rc 0 2011-09-17 00:15 06_half.png
언급URL : https://stackoverflow.com/questions/7450818/rename-all-files-in-directory-from-filename-h-to-filename-half
'programing' 카테고리의 다른 글
postgresql COUNT(DISTINCT...) 매우 느림 (0) | 2023.05.03 |
---|---|
Azure DevOps에서 파일의 원시 콘텐츠에 대한 링크를 가질 수 있습니까? (0) | 2023.05.03 |
각 모델에 중첩된 MVC 레이저 뷰 (0) | 2023.05.03 |
"ExtensionlessUrlHandler-Integrated-4.0" 처리기의 모듈 목록에 잘못된 모듈 "ManagedPipelineHandler"가 있음 (0) | 2023.05.03 |
잠시 후의 휴식...웬드루프 (0) | 2023.05.03 |