2016-11-14 9 views
0

$ fich1にファイルの名前がありますが、最後に同じ拡張子(ただし、拡張子がない可能性があります)を追加します。ファイルが持っていない場合拡張子を変更せずにファイルの終わりの名前を変更する

${fich1/./(copy).} 

しかし、この方法:たとえば、私は考えることができるファイルfile1にFILE1.TXT IM1に(コピー).txtファイルまたはIM1(コピー)【選択唯一のことは、このようなもの ですそれは働かない拡張機能です。

答えて

1

Parameter Expansionは(存在する場合)の名前と拡張子を抽出するために使用することができ、その後

$ f='file1.txt' 
$ name="${f%.*}" 
$ ext="${f#${f%.*}}" 
$ newname="${name}(copy)${ext}" 
$ echo "$newname" 
file1(copy).txt 

$ f='file1' 
$ name="${f%.*}" 
$ ext="${f#${f%.*}}" 
$ newname="${name}(copy)${ext}" 
$ echo "$newname" 
file1(copy) 


を必要に応じて新しい文字列を取得するために一緒にステッチmvコマンドを使用している場合:そう

$ f='file1.txt' 
$ mv -v "$f" "${f%.*}(copy)${f#${f%.*}}" 
'file1.txt' -> 'file1(copy).txt' 

$ f='file2' 
$ mv -v "$f" "${f%.*}(copy)${f#${f%.*}}" 
'file2' -> 'file2(copy)' 
+0

、 2番目のものでは、extは空になるでしょう、そうですか? –

+0

はい、それは空になります – Sundeep

関連する問題