2017-10-29 149 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預過濾你的輸入,這樣的事情:

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

將任何文件匹配這個模式*thumb*.jpg,後來用sed像以前那樣解釋更換號碼。

如果您想cpmv你可以使用類似的文件:

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

沒有工作[root @ s1 test]#find。 -iname「* thumb * .jpg」-exec sh -c「echo {} | sed's#[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 [ root @ s1 test]#ls dbo-101ar_thumb657.jpg door-27ar_thumb641.jpg ishq-283ar_thumb639.jpg ksm-365ar_thumb599.jpg pkyek-302_thumb604.jpg pun-68ar_thumb694.jpg [root @ s1 test]# –

+0

它正在打印像你問的文件(沒有數字),似乎你想重命名文件的權利? – nbari

0

查找thumb後跟0個或多個數字,並與thumb更換。

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

或者只有當你至少有1位(在這種情況下,相同的結果)替換:什麼是你想到目前爲止目前關於它的研究

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

沒有工作:( –

相關問題