我有一個目錄這樣的文件叫做current_dir:刪除的日期,但保留文件的擴展名
my data-file 2014-10.txt
data file201409.txt
,我想
my data-file.txt
data file.txt
這裏是我試過
rename 's/ *[0-9]{4}-?[0-9]{2}.*$//' current_dir/*.txt
但它也刪除了.txt擴展名。
我是linux新手,能幫助我嗎?
我有一個目錄這樣的文件叫做current_dir:刪除的日期,但保留文件的擴展名
my data-file 2014-10.txt
data file201409.txt
,我想
my data-file.txt
data file.txt
這裏是我試過
rename 's/ *[0-9]{4}-?[0-9]{2}.*$//' current_dir/*.txt
但它也刪除了.txt擴展名。
我是linux新手,能幫助我嗎?
重命名只替換匹配的一部分,以便去除正則表達式.*$
保持.txt
rename 's/ *[0-9]{4}-?[0-9]{2}//' current_dir/*.txt
例子
$ rename -n 's/ *[0-9]{4}-?[0-9]{2}//' *.txt
rename(data file201409.txt, data file.txt)
rename(my data-file 2014-10.txt, my data-file.txt)
,你可以做到這一點在bash
。只有當你確信該日期的部分是在身旁左側
cd $current_dir
for file in *.txt
do
mv "$file" "${file%%[0-9]*.txt}
done
嗯..不會導致'數據文件201409'和'我的數據文件2014-10'? – 2014-11-07 05:47:16
.txt擴展名,當我看你的代碼,它煤層您所有的文件都TXT,所以你可以簡單地用你的代碼將其重命名,並重新命名他們再次並添加.txt結束他們 – 2014-11-07 03:34:59