2017-02-18 28 views
-2

私は複数のファイルを含むディレクトリを持っています。私はこれらのファイルの名前を変更する必要があります。私は、これらのファイルから削除し、「スナップ」と「.TXT」する必要が接頭辞と接尾辞をmvでファイルから削除します

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

これはどのように見えるかのファイル名です。

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

mvコマンドでどうすればよいですか?あなたがそれらのファイルの名前を変更するために、このような何かを行うことができバッシュで

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

あなたは 'rename'コマンドを試しましたか? – RomanPerekhrest

+0

私はしようとしましたが動作しませんでした: 'rename '/ txt $ //' *。*' – Asdfg

答えて

0

使用すると、ファイル名を操作するためのsed

#!/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/' *.* 
関連する問題