2017-10-15 3 views
-1

좋은 예, 우리는 기본 언어가 아닙니다.
우리는 많은 파일이나 디렉토리의 이름을 바꾸는 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

+0

100 개가 넘는 파일은 어떤 새로운 이름을 사용해야합니까? '01-time.ext'와'02-time.pdf'가 될 수 있습니까? – lit

+0

글쎄, 100 개 이상의 파일 이름을 바꿀 경우. 우리는'[01]'의'[001]'을 사용합니다. 및 디렉토리 내의 혼합 된 extfiles. 여러분의 권리는'01-time.ext와 02-time.pdf와 03-time.png'입니다. – follonel

답변

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 
+0

덕분에 우리는 이름 바꾸기를 시도하고 돌고래에 서비스 메뉴를 만듭니다. 우리는 이름 변경 성공을 기원합니다. 죄송합니다. 이름이 바뀌면 해결됩니다. 후에. – follonel

+0

죄송합니다. 제어 파일 방법이 변경되었습니다. 하지만 고마워. – follonel