2017-10-29 2 views
0

내가이 이름파일 이름에 단어 앞에 숫자를 제거하는 방법을

를 파일이

DBO-101ar_thumb657.jpg 문 - 27ar_thumb641.jpg ishq-283ar_thumb639.jpg KSM-365ar_thumb599.jpg pkyek-302_thumb604.jpg pun- 68ar_thumb694.jpg

는 난 할 노력하고있어 엄지 손가락

그래서이

DBO-101ar_thumb.jpg 문 27ar_thumb.jpg를 같이해야합니다 ishq - 283ar_thumb.jpg 후 번호를 제거하다 ksm-365ar_thu mb.jpg pkyek-302_thumb.jpg pun-68ar_thumb.jpg

centos 7에서 사용해야하는 명령은 무엇입니까 ???

+0

그것을 구글과 함께 돌아와 –

답변

0

당신이 시도 할 수 :

for f in *; do 
echo $f | sed 's#[0-9]*\.#\.#g' 
done 

가 출력 :

dbo-101ar_thumb.jpg 
door-27ar_thumb.jpg 
ishq-283ar_thumb.jpg 
ksm-365ar_thumb.jpg 
pkyek-302_thumb.jpg 
pun-68ar_thumb.jpg 

현재 디렉토리에있는 모든 파일을 읽고 나중에 sed 's#[0-9]*\.#\.#g'를 사용하여가 "로 끝나는 번호로 대체됩니다. " "."

당신은 또한 다음과 같이 귀하의 의견, 무언가를 프리 필터 찾을 사용할 수 있습니다

find . -iname "*thumb*.jpg" -exec sh -c "echo {} | sed 's#[0-9]*\.#\.#g'" \; 

은 앞서 설명한 것처럼 숫자를 대체하기 위해 sed를 사용하여 나중에이 패턴 *thumb*.jpg으로 모든 파일과 일치합니다.

당신이 당신이 좋아하는 무언가를 사용할 수 cp 또는 mv 파일 싶습니다 : 0 이상의 숫자 뒤에 thumb에 대한

find . -iname "*thumb*.jpg" -exec sh -c 'x=`echo {} | sed "s#[0-9]*\.#\.#g"`; mv {} $x' \; 
+0

작동하지 않음 [root @ s1 테스트] # 찾기. -iname "* thumb * .jpg"-exec sh -c "echo {} | sed의 # [0-9] * \. # \. # g '"\; ./dbo-101ar_thumb.jpg ./ksm-365ar_thumb.jpg ./pun-68ar_thumb.jpg ./door-27ar_thumb.jpg ./pkyek-302_thumb.jpg ./ishq-283ar_thumb.jpg [ 루트 @의 S1 시험] #의 LS는 DBO-101ar_thumb657.jpg 도어-27ar_thumb641.jpg ishq-283ar_thumb639.jpg KSM-365ar_thumb599.jpg pkyek-302_thumb604.jpg의 장난-68ar_thumb694.jpg는 [루트 @의 S1 시험] # –

+0

그것은 인쇄이다 (숫자없이) 묻는 것처럼 파일 이름을 바꿀 것 같습니까? – nbari

0

봐와 thumb로 대체합니다.

sed 's/thumb[0-9]*/thumb/g' 

또는 만 (이 경우 같은 결과를) 최소 1 개 자리가있을 때 교체 : 당신이 지금까지에 현재 어떤 연구를 시도하고있는 무슨

sed 's/thumb[0-9]\+/thumb/g' 
+0

작동하지 않았습니다. ( –

관련 문제