プレフィックスまたはサフィックスを追加してローカルフォルダのファイル名を変更する

プレフィックスまたはサフィックスを追加してローカルフォルダのファイル名を変更する

私のフォルダに多くのファイルがあり、プレフィックスまたはサフィックスを追加したいです(両方)与えてください。確認しましたここ使えることがわかりました

for filename in *.jpg; do mv "$filename" "prefix_$filename"; done;

で終わるすべてのファイルにプレフィックスを追加します.jpg(削除すると、.jpg現在のフォルダ内のすべてのファイルにプレフィックスが追加されます)。

しかし、私はできることを願っています

  • サフィックスを追加します(例:filename.extに名前を変更するなどfilename.whatever.ext)。
  • プレフィックスまたはサフィックスがすでに存在していることを確認してスキップします。
  • addprefix whatever *.extまたは、同じパラメータを受け入れるエイリアスを作成します。addsufix whatever *.*

ベストアンサー1

使用している場合は、bashこの1行のコードで操作を実行できます(変数があり、$prefix簡単に使用できる$suffixと仮定)。$extension

mv "$filename" "$prefix${filename%.$extension}$suffix.$extension"

スクリプトを作成できます

#!/bin/bash
# Usage: addprefix <prefix> <files>

prefix=$1
shift
for f in "$@"
do
  mv "$f" "$prefix$f"
done

そして

#!/bin/bash
# addsuffix <suffix> <files>

suffix=$1
shift
for f in "$@"
do
  extension=${f##*.}
  if [ -z $extension ]; then
    mv "$f" "$f$suffix"
  else
    mv "$f" "${f%.$extension}$suffix.$extension"
  fi
done

おすすめ記事