고정 텍스트를 추가하고 이름 부분을 이동하는 일괄 이름 바꾸기 폴더

고정 텍스트를 추가하고 이름 부분을 이동하는 일괄 이름 바꾸기 폴더

, 등 [year] name의 패턴 이름을 딴 여러 디렉터리가 있습니다 [1900] aaaa. 이름 시작 부분에 고정 을 추가하고 해당 부분을 끝으로 이동하여 ( 또는 이라는 이름을 만들고 싶습니다 .[1901] bbbb[1902] cccctext -[year]text - name [year]text - aaaa [1900]

rename -nv '[' 'text - ' '['?util-linux 2.36.2에서 이름 을 바꾸려고 하는데 no matches found: [?.

어떻게 하면 바로잡을 수 있나요?

편집: 원래 게시물에서 모든 폴더의 이름이 다르다는 사실을 언급하는 것을 잊었습니다.

답변1

Perl 도구 사용(util-linux 패키지와 다름 rename):rename

rename 's/^(\[\d{4}\])( .*)/text -$2 $1/' *

사용 bash매개변수 하위 문자열 확장:

for i in \[[0-9][0-9][0-9][0-9]\]\ *; do
  mv "$i" "text -${i:6} ${i:0:6}"
done

답변2

글쎄, 이것은 올해 어려운 부분이지만 이것이 효과가 있을 것입니다. 먼저 테스트해 보시기 바랍니다. 몇 가지 예를 통해 시도해 보았습니다.

for n in *; do year=$(echo "$n" | grep -oz [[:digit:]]); mv "$n" "addon - text [$year]"; done

내 테스트 파일의 이름은 "[연도] 텍스트"였습니다. 파일 이름이 다르게 지정된 경우 약간 조정해야 합니다.

제이슨 C.

관련 정보