استفادة كل ملف في دليل، في باش، وذلك باستخدام "إس ام"

StackOverflow https://stackoverflow.com/questions/199469

سؤال

وأحتاج لتغيير القيمة من مجموعة من الملفات في نسخة العمل التخريب، كما يلي:

svn mv test.txt Test.txt
svn mv test2.txt Test2.txt
svn mv testn.txt Testn.txt
...
svn commit -m "caps"

وكيف يمكنني أتمتة هذه العملية؟ لينكس القياسية تثبيت الأدوات المتاحة.

هل كانت مفيدة؟

المحلول

وليرة سورية | AWK '{نظام ( "إس ام" $ 0 "" toupper (SUBSTR ($ 0،1،1)) SUBSTR ($ 0،2))}

وبطبيعة الحال، سوف غات البرمجة الأخرى يعمل فقط كذلك. AWK لديه ميزة أنه تكنولوجيا المعلومات في كل مكان.

نصائح أخرى

إذا كان لديك لائق تثبيت يجب أن يكون الثعبان، وإعطاء هذه المحاولة:

#!/usr/bin/python
from os import rename, listdir
path = "/path/to/folder"
try:
    dirList = listdir(path)
except:
    print 'There was an error while trying to access the directory: '+path
for name in dirList:
    try:
        rename(path+'\\'+name, path+'\\'+name.upper())
    except:
        print 'Process failed for file: '+name

وأنا لا أعتقد ثيريس وسيلة سهلة للقيام بذلك مع باش / ااا / آر / العثور عليها.

وأود الإدلاء السيناريو روبي / بيرل أن يفعل إعادة تسمية.

 #!/usr/bin/ruby 
 #  Upcase.rb 
 ARGV.each{ |i|
  newname = i.gsub(/(^.|\s.)/{ |x| x.upcase }
  `svn mv "#{i}" "#{newname}" `
 }

وبعد ذلك فقط القيام

 ./Upcase.rb foo.txt test.txt test2.txt foo/bar/test.txt 

وأو إذا كنت تريد أن تفعل دير كله

 find ./ -exec ./Upcase.rb {} + 

تجدر الإشارة إلى أن هذا التغيير فواصل workingcopies على أنظمة ويندوز وماك الحالية، لأنها لا تستطيع التعامل مع قضية إعادة تسمية فقط.

وأنا عادة القيام بذلك عن طريق إعادة توجيه الإخراج "ليرة سورية" إلى ملف، وذلك باستخدام وحدات الماكرو همة لتدليك كل اسم في سطر الأوامر أريد، ثم تنفيذ الملف كملف نصي قذيفة. انها الخام لكنها فعالة.

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