rename
また、コマンドでコマンド置換拡張が必要な場合、コマンドでグループ一致パターンを使用し、代替部分で逆参照を使用する場合は拡張に二重引用符を使用しますが、シェルも逆参照をパラメータとしてrename
処理して名前変更の問題を引き起こします。これをどのように避けることができますか?
rename "s:(.*)$(date +"%Y%m%d"):$1$(date -d "+1day" +"%Y%m%d"):" *
また、拡張部分を置き換える別のコマンドを試しましたが、運がありませんでした$(date -d "+1day" +"%Y%m%d")
。 。
rename 's:(.*)'"$(date +"%Y%m%d")"':$1'"'"$(date -d "+1day" +"%Y%m%d")"'"':' *
ベストアンサー1
ちょうど$
脱出してください$1
:
rename "s:(.*)$(date +"%Y%m%d"):\$1$(date -d "+1day" +"%Y%m%d"):" *
ただし、次のようにパターンを単純化できます。
rename "s#$(date +%Y%m%d)#$(date -d +1day +%Y%m%d)#" *
(これは#
拡張には存在しないと仮定しますdate
)。