一部のファイル名にハイフンのないGUIDを変更しようとしています。
正規表現を完了したようですが、エスケープまたは代替コマンドがお互いに正しく動作しないようです。
これは私の正規表現です。
https://regex101.com/r/SiqsjP/1
(-[0-9a-f]{32})
ファイル名は次のとおりです。
iPhone6Plus-learn_multi_child-0dfb2dc71fe20da66ca47190d3136b12.png
私はこの答えを見ました。ファイル名から部分文字列を見つけて削除する Bash シェルスクリプトしかし、同じではありません...
私はこれがうまくいくべきだと思いますが、エラーについて文句を言わないでしょうか?
newname=`echo "$filename" | sed -e 's/\([0-9a-f]{32}\)\.png/\1.png/'`
ベストアンサー1
存在するsed 着替える(基本正規表現)中括弧もエスケープする必要があります{}
。
newname=`echo "$filename" | sed 's/-[0-9a-f]\{32\}//g'`
ファイルの移動/名前を変更する:
mv "$filename" "$newname"