إعـــــــلان

تقليص
لا يوجد إعلان حتى الآن.

إعادة تسمية الملفات باستخدام rename

تقليص
X
تقليص

  • إعادة تسمية الملفات باستخدام rename

    لينكس على السّريع : إعادة تسمية الملفات باستخدام rename


    تذكير بالموضوع السابق : إعادة تسمية الملفات باستخدام mv

    كما في المرة السابقة سنتحدث اليوم عن إعادة تسمية مجموعة من الملفات لكن باستخدام أداة أخرى وهي rename ؛ بحيث أنّنا لن نضطر لاستعمال حلقات التكرار والأمر مشابه نوعا ما لما يقوم به الأمرsed ، لكن الأداة rename تستخدم التعابير النظامية perlexpr لكننا سنذكر فقط التعابير النظامية المشتركة بين الاثنين .
    بعض خصائص الأمر :
    n, –no-act- : يوصى باستخدام هذه الخاصية كثيرا ، فمن خلالها يتم إظهار التغييرات التي ستتم بدون إجراء أي تعديل
    f, –force : الكتابة على الملفات بدون أدنى تحذير
    v, –verbose – : تفعيل وضع verbose ليتم إظهار التغييرات الجارية
    ويكون الشكل العام للأمر كالتالي :

    كود:
    rename [option] 's/old-name/new-name/' file
    باستبدال file بالملفات التي تود تغيير أسمائها
    كمثال أوّلي مثلا نريد استبدال المسافات الفارغة المتواجدة في أسماء الملفات أو المجلدات بالرمز _ :

    المثال 1 :
    كود:
    rename 's/ /_/g' *
    g ليتم الاستبدال في أكثر من موضع إن وجد
    الآن سنقوم كالعادة بإنشاء مجلد نقوم فيه بأمثلتنا

    كود:
    mkdir test ; cd test ; touch gx1.txt Gx2.txt gX3.txt GX4.txt
    المثال 2 :

    الآن لاحظ سنقوم باستبدال gx بdx في أسماء الملفات
    كود:
    rename -n 's/gx/dx/' *.txt
    الناتج :
    كود:
    rename(gx1.txt, dx1.txt)
    إذن سيتم إعادة تسمية ملف واحد رغم تواجد السلسلة النصية gx في كل الملفات وهذا راجع لتحسس حالة الأحرف case-insensitive ، فgx ليس هو GX أو Gx ، وهذا ينطبق أيضا على المثال التالي :
    كود:
    rename -n 's/GX/dx/' *.txt
    ولحل هاته المشكلة نضيف الحرف i في آخر التعليمة
    كود:
    rename -n 's/gx/dx/i' *.txt
    الناتج في هذه الحالة :

    كود:
    rename(gx1.txt, dx1.txt) rename(Gx2.txt, dx2.txt) rename(gX3.txt, dx3.txt) rename(GX4.txt, dx4.txt)

    أي تمّت إعادة تسمية كل الملفات رغم اختلاف حالة الأحرف

    المثال 3 :

    سنقوم بتغيير امتداد هذه الملفات من txt إلى doc باستخدام التعليمة التالية :
    كود:
    rename -n 's/\.txt$/.doc/' *
    قمنا بوضع \ قبل النقطة . لإلغاء مفعولها كتعبير نظامي ورمز الدولار للتعبير عن نهاية اسم الملف
    لمزيد من المعلومات حول كيفية استخدام التعابير النظامية، يرجى زيارة الموضوعين التاليين : هذا و هذا


    المثال 4 :
    كود:
    rename -n 's/([0-9])/<\1>/' *
    يقوم هذا الأمر بإحاطة الرقم الموجود في أسماء الملفات بالرمزين <>

    المثال 5 :


    في كل الأمثلة السابقة قمنا بوضع التعليمة داخل علامات التنصيص الأحادية ‘ ‘ لكن الآن سنقوم بوضعها داخل علامات التنصيص الثنائية ” ” لنستطيع تضمين المتغيرات داخل التعليمة وبهذا سيفقد رمز الدولار $ مفعوله كتعبير نظامي لنستطيع استخدامه في المتغيرات
    لاستعراض تاريخ اليوم نستخدم الأمر :
    كود:
    date +%F
    الآن سنقوم بإضافة تاريخ اليوم في بداية أسماء الملفات
    كود:
    rename -n "s//$(date +%F)_/" *
    المثال 6 :

    الآن بدل وضع s في بداية التعليمة سنستخدم y والفرق بينهما هي أن s تستعمل لاستبدال سلسلة نصية تتكون من حرف أو أكثر -وهذا يتضمن الرموز أيضا- في حين أن y يستخدم لاستبدال الحروف فقط
    كود:
    rename -v 'y/A-Z/a-z/' *
    وهذا لتحويل حالة الأحرف من capital to small

    المثال الأخير :


    وآخرا سنقوم بتنفيذ أكثر من تعليمة في أمر واحد كالتالي بفصل كل تعليمة بالفاصلة المنقوطة ; بنفس طريقة الأمر sed
    كود:
    rename "s//$(date +%F)_/;s/gx/dx/i;s/\.txt$/.doc/" *
    سنقوم بوضع الخاصية -v بدل -n لتفعيل وضع verbose وتطبيق التغييرات




    أحيطكم علما بأن هذا هو آخر موضوع ينشر من سلسلة لينكس على السّريع قبل إصدار كُتيب pdf يحوي مواضيع السلسلة في حلّة جديدة ، فبالإضافة لما سبق نشره سيتم إضافة موضوعين آخرين في الكُتيب
    لا يمكن إضافة تعليقات.

التصانيف

تقليص

Latest Articles

تقليص

  • تجربة تثبيت توزيعة ديبيان بجانب ويندوز بدون usb او cd
    أحمد غريب
    التجربة تمت على VirtualBox النظام ويندوز اكسبي قرص صلب واحد قسمين c و d

    التجربة قسمين القسم الاول تجهيز ملف iso دبيان لعملية الاقلاع لايف من الهاردسك والقسم الثاني عملية الثتبيت تحتاج الى اتصال بالانترنت
    و استخدمت برنامج UltraISO لعمل virtual cd drive لملف iso

    1- نسخ ملف iso دبيان داخل القرص C
    2- تركيب الملف iso كقرص وهمي "mount"
    3- فتح debian-lnstaller loader ثم نكست نكست نكست

    4- حذف كل ما يوجد في ملف grup.cfg موجود في C داخل في مجلد win32-loader

    ثم اضافة مايلي
    كود:
    menuentry 'debian-live-8-amd64-gnome-desktop' {
        set isofile='/debian-live-8.6.0-amd64-gnome-desktop.iso'
        loopback loop $isofile
        linux (loop)/live/vmlinuz boot=live config fromiso=/dev/sda1/$isofile
        initrd (loop)/live/initrd.img
    }
    استبدال initrd.gz موجود في داخل win32-loade التحميل من الرابط
    http://ftp.nl.debian.org/debian/dists/testing/main/installer-amd64/current/images/hd-media/
    بعد ...
    27-11-2016, 03:08 PM
  • عداد الإستغفار
    مبتدى في للينكس
    السلام عليكم ورحمة الله و بركاته

    شرح فكرة السكربت:

    عداد الأستغفار يعمل عند الضغط على أختصار من الكيبورد و عند كل ضغطة يضيف 1 إلى العداد و يظهر إطار صغير في منتصف الشاشة لعرض العدد لمدة ثانية ثم يتم أغلاقه تلقائياً . أذا وصل العداد إلى 100 يرجع إلى الصفر. يتم حفظ العدد في ملف count.txt يتم إنشاءه تلقائياً بواسطة السكربت.


    شرح إعداد السكربت:

    1. قم بفتح مجلد Home وقم بإنشاء مجلد بإسم counter

    2. في داخل المجلد counter قم بإنشاء ملف نصي بإسم Counter.java , ثم قم بنسخ السكربت التالية و ضعه في داخل الملف ثم قم بالحفظ



    :
    package counter; import java.awt.BorderLayout; import java.awt.Event; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.io.IOException; import java.io.PrintWriter; import java.nio.charset.Charset; import java.nio.charset.StandardCharsets; import java.nio.file.Files; import java.nio.file.Paths; import java.util.logging.Level; import java.util.logging.Logger; import javax.swing.JFrame; import javax.swing.JLabel; import javax.swing.JButton; import javax.swing.SwingConstants; public class Counter extends JFrame { private static String fileName = System.getProperty("user.dir") + "/counter/count.txt"; public Counter() { this.setTitle("Counter"); this.setResizable(false); this.setLocationRelativeTo(null); this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); this.pack(); this.setSize(150, 150); this.setVisible(true); } public static void main(String[] args) { Counter obj = new Counter(); int count = 0; try { try { try { String countString = readFile(fileName, StandardCharsets.UTF_8).trim(); count = (int) Integer.parseInt(countString); } catch (Exception e) { outResult(fileName, String.valueOf(count)); } finally { if (count
    ...
    23-11-2016, 02:11 AM
  • سكربت بايثون لتسهيل تثبيت بعض الأشياء في فيدورا
    yucef
    بسم الله الرحمن الرحيم
    السلام عليكم ورحمة الله وبركاته




    قمت بعمل سكربت بايثون لتسهل تثبيت بعض الأشياء لفيدورا ,طريقة تنزيل وتشغيل السكربت مشروحة في هذا الرابط .

    https://github.com/yucefsourani/arfedy

    ...
    23-11-2016, 02:09 AM
  • إعادة تسمية الملفات باستخدام rename
    OtmanGX
    لينكس على السّريع : إعادة تسمية الملفات باستخدام rename


    تذكير بالموضوع السابق : إعادة تسمية الملفات باستخدام mv

    كما في المرة السابقة سنتحدث اليوم عن إعادة تسمية مجموعة من الملفات لكن باستخدام أداة أخرى وهي rename ؛ بحيث أنّنا لن نضطر لاستعمال حلقات التكرار والأمر مشابه نوعا ما لما يقوم به الأمرsed ، لكن الأداة rename تستخدم التعابير النظامية perlexpr لكننا سنذكر فقط التعابير النظامية المشتركة بين الاثنين .
    بعض خصائص الأمر :
    n, –no-act- : يوصى باستخدام هذه الخاصية كثيرا ، فمن خلالها يتم إظهار التغييرات التي ستتم بدون إجراء أي تعديل
    f, –force : الكتابة على الملفات بدون أدنى تحذير
    v, –verbose – : تفعيل وضع verbose ليتم إظهار التغييرات الجارية
    ويكون الشكل العام للأمر كالتالي :

    :
    rename [option] 's/old-name/new-name/' file
    باستبدال file بالملفات التي تود تغيير أسمائها
    كمثال أوّلي مثلا نريد استبدال المسافات الفارغة المتواجدة في أسماء الملفات أو المجلدات بالرمز _ :

    المثال 1 :
    :
    rename 's/ /_/g' *
    g ليتم الاستبدال في أكثر من موضع إن وجد
    الآن سنقوم كالعادة بإنشاء مجلد نقوم فيه بأمثلتنا
    ...
    23-11-2016, 02:05 AM
  • المراقبة العالمية ! Global surveillance
    عبدالرحمـن محمد
    السلام عليكم ورحمة الله

    مقدمة :
    في يونيو 2013، سرَّب إدوارد سنودين، وهو عميل متعاقد مع وكالة الأمن القومي، مستندات تّصِف بريسم "ومجموعة برامج أخري" بأنه برنامج يتيح مراقبة معمقة للاتصالات الحية والمعلومات المخزنة. ويمكن من استهداف أي عميل لشركة منخرطة في برنامج بريسم، في حال كان هذا العميل يسكن خارج الولايات المتحدة، أو كان مواطنًا أمريكيًا له اتصالات تتضمن محتويات وِب خاصة بأشخاص خارج الولايات المتحدة. البيانات التي يقال أن بريسم يمكِّن من الحصول عليها تتضمن، رسائل البريد الإلكتروني، ومحادثات الفيديو والصوت، والصور، والاتصالات الصوتية ببرتوكول الإنترنت، وعمليات نقل الملفات، وإخطارات الولوج وتفاصيل الشبكات الاجتماعية.
    كشفت الوثائق المسرّبة أن NSA كانت قادرة على الدخول مباشرة إلى الخوادم الخاصة لكل من
    ...
    23-11-2016, 02:04 AM
  • اضافة مستخدم لينيكس جديد و استعمال نفس اسم الحساب لMySQL و قاعدة بيانات بإسمه ايضًا.
    superlinux
    طبعًا هذه استعملها لفتح حساب جديد لشخص يريد ان يستعمل مجلده المنزل (او home directory بالانجليزي) لحفظ موقع الويب خاصته. يعني هذه طريقة ارجو تكون خفيفة ظريفة لإدارة الخادم عليكم. و هكذا ابدؤوا بيع المواقع عالسريع.

    انا استعمل دبيان 8.0 جسي هنا.

    قبل أي شيء, لتوظيف المجلدات المنزل كلها لتكون محافظ لصفحات ويب لكل مستخدم. نفعّل الوحدة userdir:
    :
    a2enmod userdir
    بس على شان تفهم كيف تحفظ الامر السابق: a2 = apache2 web server , enmod =enable module
    هناك الكثير من الاوامر تخص خادم الويب اباتشي تبدأ بــ a2 .

    ثم حرر بأي محرر نصي مثل vi او pico ملف اعدادات الاباتشي:

    :
    vi /etc/apache2/apache2.conf
    ضع في آخر سطر في الملف على سطر مستقل لوحده ما يلي:
    :
    UserDir public
    UserDir disable root
    الكلمة public_html هو اسم مجلد موجود في المجلد المنزل مباشرة. بمعنى لو كان عندك اسم مستخدم اسمه saleem (سليم) , لازم سليم يضع موقعه على الخادم داخل مسار القرص /home/saleem/public_html/ . و التعل...
    23-11-2016, 02:03 AM
يعمل...
X