次のように3つの.datファイルがあるとします。
Psdm_123_20200221.dat
Psdm_20200221.dat
Psdm_acc_20200221_12345667.dat
出力
Psdm_123*.dat
Psdm_*.dat
Psdm_acc_*.dat
答え1
次のsed
コマンドで操作を実行する必要があります。
sed 's/20[0-9]\{2\}\(0[1-9]\|1[012]\)\([012][0-9]\|3[01]\)[^.]*/*/'
または、オプションをsed
理解したら、ほとんどのバックスラッシュを省略できます。-r
-E
sed -r 's/20[0-9]{2}(0[1-9]|1[012])([012][0-9]|3[01])[^.]*/*/'
これは、いくつかの健全性検査(2000年から2099年の年、01から12までの月、01から31の範囲の日)で「YYYYMMDD」パターンを見つけて置き換えます。.
日付の後のファイル名にリテラルが1つしかない場合は、それ以降のすべての項目(ファイル拡張子を含まない)。これは、置き換える式で「0回以上を除くすべて」()を許可することによって.
行われます。[^.]*