ファイル名から特殊文字を削除し、新しい名前を変数として渡すbashスクリプト

ファイル名から特殊文字を削除し、新しい名前を変数として渡すbashスクリプト

ループで1つずつ処理する前にファイル名を削除したいと思います。以下のスクリプトは例です。どうやって得るのか分からない。"$new_filename"

for file in *.txt
do rename -n 's/[^a-zA-Z0-9_-]//g' "$file"
process "$new_filename"
done

ベストアンサー1

rename私が知っている限り、シェルループを使用したい場合は、ここで使用する理由はありません。たぶん、次のようなものがあります。

for file in *.txt; do 
  printf -v new_filename '%s' "${file//[^a-zA-Z0-9_-]}"
  echo mv -- "$file" "$new_filename"
  process "$new_filename"
done

コマンドフラグechoと同じように追加されました。rename-n

.特に選択したファイル名.txt

おすすめ記事