إعادة تسمية مجموعة من الملفات في ديبيان
سؤال
لدي الآلاف من الملفات التي تحتاج إلى إعادة تسمية مع الشكل التالي.2008:09:18:17:45:48-alfanumeric-alfanumeric.wav الجزء الأول هو تاريخ.
Ex. 2008:09:18:17:45:48-703-s.wav
ترغب في إعادة تسميته إلى:
20080918.174548.703.s.wav
أساسا لإزالة ':' وجعل الإنسان في تنسيق قابل للقراءة و أسهل إلى الانقسام.
وأنا أعلم أن تسمية ما ايم تبحث عنه ولكن regex لا يعمل.أنا الكتابة:
إعادة تسمية 's/(\d):(\d):(\d):(\d):(\d):(\d)-(.?)-(.?).wav/$1$2$3.$4$5$6.$7.$8.wav/' ./*
المحلول
تحتاج إلى النظر في multiplicities:
rename 's/(\d+)\:(\d+)\:(\d+)\:(\d+)\:(\d+)\:(\d+)-(.*)-(.?).wav/$1$2$3.$4$5$6.$7.$8.wav/' ./*
نصائح أخرى
rename 's/(\d+):(\d+):(\d+):(\d+):(\d+):(\d+)-([^-]+)-([^.]+).wav/$1$2$3.$4$5$6.$7.$8.wav/' ./*
ينبغي أن تستخدم في الإصدار الخاص بك دائما فقط من مباراة رقم واحد.بالاضافة الى ذلك, لا تحتاج إلى الهروب من :.
إذا كان هذا هو شيء كنت فقط ذاهب إلى القيام به مرة واحدة كنت تفعل ذلك بهذه الطريقة:
1) هل الملفات في ملف جديد:هل datadir > mytmp 2) تحرير mytmp مع المفضلة لديك محرر.2a حذف أي الخطوط التي لا يكون لها ملفات البيانات يهمك ، مثل "." و ".." 2b تحرير كل سطر في قذيفة الأوامر إلى إعادة تسمية الملف.أنا مثل emacs ، بناء لوحة المفاتيح ماكرو:مقطع اسم الملف إدراج "mv" إدراج اسم الملف الفضاء إدراج, إدراج اسم الملف مرة أخرى ، تحرير إدخال اسم الملف الى الشكل المطلوب.2c حفظ 3) تشغيل sh < mytmp
فعلت!ليس أنيقة, مملة إذا كان المحرر الخاص بك لا يدعم وحدات الماكرو أو وظائف مماثلة ، ولكن مضمونة للعمل و git-er-القيام به.