次の形式のファイルがたくさんあります。
2014-11-19.8.ext
2014-11-26.1.ext
2014-11-26.2.blah.ext
2014-11-26_3.ext
2014-11-26.4.stuff_here.ext
2014-12-03.1. could be anything.ext
2014-12-032b.ext
2014-11-26 613 adva.ext
私の目標は、ファイルの全リストを繰り返して日付形式を取得し、それを処理するために変数にYYYY-MM-DD
保存することです(私の場合はコマンドYYYYMMDD
にプッシュされます)。touch
したがって、通常は次の正規表現と一致します。(\d{4})-(\d{2})-(\d{2}).*
次に、を使用して目的のパターンを取得しましたが、/でこれを行う$1$2$3
方法がわかりません。bash
zsh
シェルスクリプトでこれを行うにはどうすればよいですか?
ベストアンサー1
使用パラメータ拡張
$ touch 2014-11-19.8.ext 2014-11-26.1.ext
$ for f in *.ext; do d="${f:0:4}${f:5:2}${f:8:2}"; echo "$d"; done
20141119
20141126
${f:0:4}
変数名であるindexから始めて4文字を表します0
。f
echo "$d"
あなたのコードに置き換えてください。