اذهب إلى المحتوى

السؤال

نشر

لدي مجموعة من الملفات ذات أسماء كالتالي:
 

filename15_1
filename15_2
filename15_3
filename15_4

ولدي ملف CSV يحتوى على أسماء الملفات القديمة والأسماء الجديدة:
 

filename15_1,filename30_6
filename15_2,filename30_7
filename15_3,filename60_3
filename15_4,filename60_4
filename15_5,filename60_5
filename15_6,filename60_6

أريد تغيير أسماء الملفات القديمة بأسماء الجديدة، فكيف أستطيع فعل ذلك في سطر الأوامر (نظام لينكس دبيان) ؟

Recommended Posts

  • 0
نشر (معدل)

يمكنك فعل ذلك بسهولة وبسطر واحد في نظام لينكس، سوف نستخدم نظام دالة awk:

awk -F',' 'system("mv " $1 " " $2)' mappingFile.csv

وهذا الأمر سوف يعمل على جميع السطور في ملف mappingFile.csv

شرح السطر:

awk هي أداة مفيدة للغاية في نظام يونكس للتعامل مع البيانات الجدولية.

-F',' وهو فاصل الحقول، أي أن الفاصلة ',' هي التي تفصل بين الأسماء القديمة والأسماء الجديدة.

system("mv " $1 " " $2) هذا الأمر يعمل على كل سطر من السطور ومعناه قم بتغيير اسم الملف القديم إلى اسم الجديد، وتمت الإشارة إلى الأسماء بمتغيرات 1$ للاسم القديم و 2$ للاسم الجديد.

mappingFile.csv هذا هو ملف قائمة الأسماء.

 

المصدر

تم التعديل في بواسطة هشام رزق الله

انضم إلى النقاش

يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.

زائر
أجب على هذا السؤال...

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   جرى استعادة المحتوى السابق..   امسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.

  • إعلانات

  • تابعنا على



×
×
  • أضف...