2014-06-07 4 views

답변

0
당신은 쉘에 awk 및 파이프 결과를 그것을 할 수

:

ls | awk -F. '{print "mv "$0" "$1"."$3}' | sh 

힌트 : 당신은 파일 이름에 더 .이없는 경우에만에서 (작동이 솔루션 당신의 노래 제목에있는 경우). http://manpages.ubuntu.com/manpages/gutsy/man1/mmv.1.html

: 질문이 잘못 SO에 요청 된 경우이로
0

는 Q & 사이트입니다 관련 프로그램이며, 단순히 MMV를 사용하여 질문 ;-)

#!/bin/sh 
for i in *.mp3.mp3; do 
    j=`basename "$i" .mp3` 
    mv "$i" "$j" 
done 

부족, 여기에 사람의 페이지입니다

0

% 형태의 매개 변수 확장을 사용하십시오.

for f in *.mp3.mp3; do 
    mv "$f" "${f%.mp3}" 
done 

설명서는 bash 매뉴얼 페이지의 매개 변수 확장 섹션에서 찾을 수 있습니다.

0

bash 용액과 같은 용액이 트릭을해야합니다.

I 교체주의 (사용의 결과 실행 e 명령으로, 여기 sed를 사용 할 수있는 가능성을 언급하고 싶습니다 : 첫 번째 일 것입니다 무슨 인쇄 라인의 끝에서 e 명령없이 시도를 실행). toto.mp3.mp3 :

ls -1 *.mp3.mp3 | sed 's/\(.+\.mp3\)\.mp3$/mv & \1/e' 

그것은 예를 들어 .mp3.mp3로 끝나는 현재 디렉토리에있는 모든 파일을 나열해야 할 것

. 문자열 toto.mp3.mp3은 sed로 파이프되며 대신 mv toto.mp3.mp3 toto.mp3이 대입되어 인쇄됩니다.

관련 문제