Dosya Adındaki Desene Dayalı Dizini Eklemek İçin Yeniden Başlatma Dönüşümü


0

Arka fon:

Her biri birkaç milyon dosya içeren yaklaşık 25G'de 20 veya daha fazla tar dosyası var. Bu dosyalar için dizin yapısı olması gereken format değil, bu yüzden bunu düzeltmek istiyorum. Sırf hacmi nedeniyle, bir adımda tamamlayabildiğim adımlar daha iyi.

Ne Denedim?

Yapmayı umduğum şey, bu çıkarma ve dönüştürmeyi gerçekleştiren katran dosyalarının üzerinde bir döngü idi: tar -xf TX.tar.001 --transform 's,^TX/([a-zA-Z][a-zA-Z]*_([0-9][0-9]-[0-9][0-9]-[0-9][0-9])_[0-9][0-9]-[0-9][0-9]-[0-9][0-9]_.+\.[a-zA-Z][a-zA-Z]*),\2/\1,'

Bununla birlikte, tar, Google’ın çok az şey bildiği anlaşılan bu hatayı tükürür: Invalid transform replacement: back reference out of range

Soru:

Katranı geri referanslarımla çalışmaya nasıl ikna edeceğiniz ya da bunu makul bir sürede tamamlayabilecek başka bir yolla yapmayı nasıl önerdiniz?

Yanıtlar:


1

Her grubun etrafındaki parantezlerden kaçmayı deneyin:

tar -xf TX.tar.001 --transform 's,^TX/\([a-zA-Z][a-zA-Z]*_\([0-9][0-9]-[0-9][0-9]-[0-9][0-9]\)_[0-9][0-9]-[0-9][0-9]-[0-9][0-9]_.+\.[a-zA-Z][a-zA-Z]*\),\2/\1,'
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.