2017-02-18 142 views
-2

我有一個包含多個文件的目錄。我需要重命名這些文件。從mv文件中刪除前綴和後綴

這是文件名的樣子:

snap-file-name-1.txt 
snap-file-name-2.txt 
snap-file-name-3.txt 

我需要從這些文件中刪除「捕捉」和「.TXT」。

-file-name-1 
-file-name-2 
-file-name-3 

如何使用mv命令做到這一點?

+1

你嘗試過'rename'命令嗎? – RomanPerekhrest

+0

我試過了,但沒有奏效:重命名'rename's/\。txt $ //'*。*' – Asdfg

回答

0

用sed來操作文件名:

ls | while read file; do 
    mv -- ${file} $(sed -n 's/snap\(.*\).txt/\1/p' <<<${file}) 
done 
0

使用bash,你可以做這樣的事情來重命名這些文件:

#!/bin/bash 
files=$(find -type f -name 'snap-file-name-*.txt') 
for f in $files 
do 
    mv "$f" "$(echo $f | sed -n 's/snap\(.*\).txt/\1/p')" 
done 
0

使用rename命令與特定的正則表達式:

rename 's/snap([-a-z0-9]+)\.txt$/$1/' *.*