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