次の形式のファイルフォルダを含むフォルダがあります。
resultstatsDF_iris_2017-05-26--21-33-35-437096_methodnr-2_percentage-0.05_seed-0.wcr
私はこれらのそれぞれの日付と時刻を削除したいので、この場合は次のような結果を得ます。
resultstatsDF_iris_methodnr-2_percentage-0.05_seed-0.wcr
Bashでこれを行うにはどうすればよいですか?
ベストアンサー1
本当にやりたいなら「バッシュと一緒に」、その後
find . -name '*.wcr' -execdir bash -c '
shopt -s extglob; for f; do echo mv -- "$f" "${f/_+([0-9-])_/_}"; done
' bash {} +
+([0-9-])
これは、セットで発生する1つ以上の文字に一致する拡張globに依存します。[0-9-]
${f/_2017+([0-9-])_/_}
たとえば、単純に数字とダッシュを一致させるのが一般的である場合は、置換をより具体的にすることができます。
注:削除 echo
あなたが望むことをしていることを確信してください。