좋은 예, 우리는 기본 언어가 아닙니다.
우리는 많은 파일이나 디렉토리의 이름을 바꾸는 linux cmd를 시도합니다.
exsample에 time\1.ext test\newname.ext read\test.ext what\abc.ext
듣고 결과합니다.
time\01-time.ext test\02-test.ext read\03-read.ext what\04-what.ext
은 시퀀스 번호와 dirname입니다.
tryed 다른 질문 사이트 포스트 코드.
그러나 그다지 효과가 없습니다. 이 파일을 사용하고 cmd의 이름을 변경하는 방법
find "$PWD" -name "[0-9][0-9].md" -exec bash -c ' DIR=$(dirname "{}" ); FILE=$(firename "{}" ); echo "{}" "$DIR"/"-${DIR##*/}".md ' \;
ls *.* | awk '{ printf "mv %s dirname-%03d.md\n", $0, NR }'
?
결과는 & 디렉토리에 이름이 없습니다.
png, txt, md, 많은 내선
우리는 "" "[0-9] [0-9]"정규 표현식입니다.
cmd 이름 바꾸기 시퀀스 번호와 dirname
-1
A
답변
0
awk
또는 다른 특정 명령을 사용해야하는지 여부는 확실하지 않습니다. 다음은 파일을 반복하여 이름을 바꾸는 간단한 방법입니다. 올바른 이름 바꾸기가 확실하면 mv
명령에서 echo
을 제거하십시오.
#!/bin/bash
count=1
for fn in $(find . -name "*.ext" -o -name "*.pdf" -o -name "*.png")
do
filename=$(basename $fn)
extension="${filename##*.}"
dn=$(dirname $fn)
dp=$(basename $dn)
thiscount=$(printf "%03d" $count)
echo mv $fn $dn/$thiscount-$dp.$extension
count=$((count+1))
done
100 개가 넘는 파일은 어떤 새로운 이름을 사용해야합니까? '01-time.ext'와'02-time.pdf'가 될 수 있습니까? – lit
글쎄, 100 개 이상의 파일 이름을 바꿀 경우. 우리는'[01]'의'[001]'을 사용합니다. 및 디렉토리 내의 혼합 된 extfiles. 여러분의 권리는'01-time.ext와 02-time.pdf와 03-time.png'입니다. – follonel