
ループで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
。