سؤال

لدي الآلاف من الملفات التي تحتاج إلى إعادة تسمية مع الشكل التالي.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-القيام به.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top