複数のファイルを繰り返しながら$file
現在のファイルを表示しています。
現在のファイルをコピーしたり、名前を変更したり、拡張子を同じままにしたりするにはどうすればよいですか?
たとえば$file
=x.jpg
$file
ファイル名を使用してコピーを作成する方法x_orig.jpg
これまで私は以下を持っています:
for file in /tmp/p/DSC*.JPG; do
cp $file $file+'_orig'.JPG
done
しかし、これはファイルをコピーします
DSCF1748.JPG
到着
DSCF1748.JPG+_orig.JPG
そして私は名前が欲しい
DSCF1748_orig.JPG
同様に、cp $file "$file"_orig.JPG
結果ファイルは次のとおりです。DSCF1748.JPG_orig.JPG
_orig
ファイル名の中間部分を取得したい...
ベストアンサー1
バッシュが使えます文字列置換機能その理由は次のとおりです。
for file in /tmp/p/DSC*.JPG; do
cp "$file" "${file%.JPG}"_orig.JPG
done
一般的な形式は最後から削除することです${string%substring}
。たとえば、substring
string
$ f=foobar.JPG; echo "${f%.JPG}"
foobar