Sıralı dosyaları sıralı dizinlere kopyala


-2

Birden çok sıralı dosyayı sıralı dizinlere kopyalamam gerekiyor. Dosyalarda, dosya adındaki diğer bilgilerle birlikte julian tarihi (yılın günü) bulunur. Dizinler, julian tarihine göre listelenir (yılın günü). Her dosyanın julian tarihiyle uyuşması gerekiyor.

Netleşmeştirmek....

"Test_001.txt" etiketli "/ home / aaa" dizinindeki "test_365.txt" etiketli 365 dosyam var. Her dosyanın "001" ile "365" arasında "/ data" etiketli kendi dizinine taşınması gerekir.

Umarım bu onu temizler. Teşekkürler!


Örnek veri lütfen
roaima

Kaynak dosyalar ve dizinler aynı yerde mi yoksa dosya sisteminin farklı bölümlerinde mi?
roaima

Farklı parçalardalar ama aynı sunucudalar.
gbh

@gbh Lütfen en iyisini düzenleyin ve daha net bir örnekle daha net hale getirin.
kenorb

Yanıtlar:


0

Böyle bir şey çalışması gerekir

for K in $(seq -w 1 365)
do
    mv *_${K}.* "/data/$K" 2>/dev/null
done

Yardımın için teşekkürler! Ancak bu, yalnızca 365 tane etiketli bir dosyayı taşıdı. Tüm dosyaları taşımam gerekiyor. Tekrar teşekkürler! Bu harika bir başlangıç!
gbh

@gbh üzgünüm, ben şu anda bir telefonda ve seqonun başlangıç ​​1 değerini kaybetti.
Yayın

Tekrar teşekkürler! Ama ne yazık ki, aynı sonucu vardı. Senin kodunun yardımı ile çözdüm. Aşağıda.
gbh

Belki de seq sürümünüzün, -wtüm çıktı dizilerinin aynı uzunlukta olmasını sağlayan seçeneği yoktur (yani bu senaryoda üç karakter)? Bunun dışında bunun neden sizin için işe yaramaması gerektiğini anlamıyorum - dosyalarınız *_NNN.*sayısal değerleri için glob ile eşleşmediği sürece NNN. test_${K}.txtEşleştirme konusunda kesin olmak istersen, herhalde kullanabilirsin .
roaima,

-1

for K in $(seq -f "test_%200g" 365); do cp *_${K}.* "/data/$K" 2>/dev/null; done

Öğrendiklerime göre, "seq" komutunda, '% 2', bir tamsayıyı temsil ediyor ve her '0', bir yeri, yani onları temsil ediyor. 'G' ifadesini kapatır. Yanlış olabilirim ama işe yarıyor! Yardım için teşekkürler!

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.