الرئيسيةدروسدروس الانترنتكيفية استخدام الأمر seq على نظام Linux
دروس الانترنت

كيفية استخدام الأمر seq على نظام Linux

seqيُنشئ أمر Linux قوائم بالأرقام في غمضة عين. ولكن كيف يمكن استخدام هذه الوظيفة عمليًا؟ سنوضح لك كيف يمكن أن يكون التسلسل مفيدًا لك.

الأمر seq

للوهلة الأولى ، seqيبدو أمر Linux شيئًا غريبًا. يسمح لك بإنشاء  تسلسل من الأرقام  بسرعة وهذا كل شيء! ومع ذلك ، فإن الكلمة الرئيسية هنا هي “بسرعة”. في لحظة ، سترى مدى السرعة التي يمكن أن يعمل بها هذا الأمر الصغير.

بغض النظر عن كيفية تكوينها ، ما مدى فائدة قائمة الأرقام؟ و seqتمت إضافة الأمر إلى النسخة ال8 من يونكس في عام 1985. لقد كان هناك منذ ذلك الحين، لذلك يجب أن نفعل شيئا مجديا.

تكمن فلسفة Unix في  أنها مليئة بالمرافق الصغيرة التي تعمل شيئًا واحدًا وتقوم به بشكل جيد. أحد المبادئ الأساسية لهذه الفلسفة هو كتابة البرامج التي تقبل المدخلات من البرامج الأخرى. بالطبع ، هذا يعني أيضًا أن هذه البرامج يجب أن تولد مخرجات يمكن استخدامها كمدخلات من قبل البرامج الأخرى.

و seqيأتي الأمر إلى جانبها عندما يكون استخدامه مع الأوامر الأخرى التي تستفيد من إنتاجها، سواء عن طريق الأنابيب أو توسيع سطر الأوامر.

إنشاء قائمة أساسية

إذا قمت بالتشغيل  seqبرقم واحد كمعامل سطر أوامر ، فسيتم حسابه من واحد إلى هذا الرقم. ثم يقوم بطباعة الأرقام الموجودة في النافذة الطرفية ، رقمًا واحدًا في كل سطر ، كما هو موضح أدناه:

seq 6

إذا قمت بكتابة رقمين في سطر الأوامر ، فسيكون الأول هو رقم البداية والثاني سيكون رقم النهاية ، كما هو موضح أدناه:

seq 4 10

يمكنك تعيين حجم الخطوة بتضمين رقم ثالث. يقع بين أرقام البداية والنهاية. نكتب ما يلي لنطلب  seqإنشاء قائمة بالأرقام تبدأ بستة وتنتهي بالرقم 48 وتستخدم الخطوة السادسة:

seq 6 6 48

العد التنازلي

يمكننا أيضًا أن نطلب seqإنشاء قائمة بالأرقام من الأعلى إلى الأدنى. للقيام بذلك ، ومع ذلك ، يجب أن نقدم خطوة سلبية.

اقرأ أيضاً :  طريقتان سريعتان لمسح محرك أقراص فلاش USB وتنسيقه على جهاز Mac

ينتج الأمر التالي قائمة تحسب من 24 إلى 12 في الخطوات 6 لأننا نكتب الخطوة كرقم سالب:

seq 24-612

العد مع الكسور العشرية

يمكن أن تكون أرقام البداية والنهاية والخطوة أيضًا أرقامًا عشرية. إذا كان أي من الأرقام عددًا عشريًا ، فسيتم التعامل مع الأرقام الأخرى أيضًا على أنها أرقام عشرية. يقوم الأمر التالي بإنشاء قائمة أرقام بخطوة 0.2:

seq 1 0.2 2

سرعة التسلسل

seqسريع للغاية – العقبة الوحيدة هي الوقت الذي تستغرقه في كتابة الأمر في نافذة المحطة الطرفية. لاختبار سرعتها ، دعنا نطلب قائمة من 250000 رقم.

نكتب ما يلي ، باستخدام timeالأمر لمعرفة المدة التي تستغرقها العملية حتى تكتمل:

time seq 250000

يتم عرض النتائج أسفل القائمة. حتى على جهاز الكمبيوتر الخاص بنا الذي يتم اختباره بشكل معتدل ، seqفهو سريع بشكل مدهش.

تم إنشاء القائمة بأكملها وكتابتها على الشاشة في حوالي 1/3 من الثانية. إذا قمنا بإعادة توجيه القائمة إلى ملف ، فيمكننا حتى تجنب الحمل الزائد للكتابة في نافذة المحطة الطرفية.

للقيام بذلك ، نكتب ما يلي:

time seq 250000 > numbers.txt

الوقت المستغرق لإكمال القائمة وإنشاء الملف الآن حوالي 1/7 من الثانية.

باستخدام فاصل

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

على سبيل المثال ، لنفترض أنك بحاجة إلى إنشاء قائمة مفصولة بفواصل ، أو قائمة مقسمة بنقطتين ، أو أي علامة ترقيم أو رمز آخر. المحدِّد عبارة عن سلسلة بالفعل ، لذا يمكنك استخدام أكثر من حرف واحد.

سنستخدم -sخيار (الفاصل). سينتج الأمر التالي قائمة مفصولة بفواصل:

seq s ، 6 6 36

سيستخدم هذا الأمر نقطتين ( :) كفاصل:

seq -s: 6 6 36

يخبرنا هذا الأمر seqباستخدام واصلتين ( -) كفاصل:

seq -s-- 6 6 36

باستخدام تنسيق السلاسل

و seqكما يدعم قيادة C على غرار اللغة سلاسل التنسيق. يتيح لك ذلك تنسيق الإخراج بمزيد من التحكم أكثر من مجرد تحديد فاصل. لاستخدام سلسلة تنسيق ، يمكنك استخدام -fخيار (تنسيق).

اقرأ أيضاً :  قم بتعيين Spotify كمشغل موسيقى افتراضي على جهاز iPhone الخاص بك

يخبر الأمر التالي seqباستخدام الأصفار لتضمين الإخراج إلى حرفين:

seq -f "٪ 02g" 6

يمكننا تنسيق السلسلة بأي نص نحبه ، ووضع الرقم في أي مكان في السلسلة ، على النحو التالي:

seq -f "Number %02g in a C-like format string" 6

طريقة سريعة لضبط حشوة صفرية

أسرع طريقة لضبط المساحة الصفرية هي استخدام خيار  -w(عرض متساوٍ). seqيشير هذا إلى استخدام الأصفار لتعبئة الأرقام ، بحيث تكون جميعها بنفس عرض أكبر رقم.

يعد الأمر التالي من 0 إلى 1000 في خطوات 100 ، وستكون جميع الأرقام مبطنة بالأصفار:

seq -w 0 100 1000

يستغرق الرقم الأطول أربعة أحرف ، لذا فإن جميع الأرقام الأضيق مبطنة بأصفار حتى هذا العرض (حتى الرقم 0 مبطن بأربعة أصفار).

تسلسل الأنابيب إلى قبل الميلاد

من خلال تعيين الفاصل كرمز رياضي وإدخال القائمة في bcالأمر ، يمكننا تقييم الأرقام الموجودة في تلك القائمة .

يُنشئ الأمر التالي قائمة بالأرقام مفصولة بعلامات نجمية ( *) ، بدءًا من واحد وتنتهي بستة:

seq -s* 6

إذا قمنا بتغذية هذه القائمة bc، فإنها تقيم القائمة باستخدام العلامات النجمية ( *) كرموز الضرب:

seq -s* 6 | bc

يمكننا فعل ذلك برموز أخرى أيضًا. يستخدم الأمر أدناه علامة الجمع ( +) لإنشاء قائمة تتم فيها إضافة جميع الأرقام:

seq -s + 5

نكتب ما يلي لتوجيه ذلك إلى bc القائمة وتقييمها:

seq -s+ 5 | bc

إنشاء الملفات مع seq

يقوم touchالأمر  بتحديث طوابع الوقت والتاريخ على الملفات. إذا كان الملف غير موجود ، فالمس ينشئه. يمكننا استخدام التوسع سطر الأوامر مع touchو seqلإنشاء مجموعة من الملفات المسماة موضوعيا، ولكن مرقمة بشكل مختلف.

سننشئ مجموعة من 10 ملفات بنفس الاسم الأساسي ورقم مختلف (ملف 1.txt و file-2.txt وما إلى ذلك). نكتب ما يلي:

touch $(seq -f "file-%g.txt" 1 10)

ثم نكتب ما يلي للتحقق من الملفات:

ls file*

استخدام seq في Bash Loops

يمكننا استخدام seqالبرامج النصية في Bash للتحكم في الحلقات ذات الكسور العشرية.

اقرأ أيضاً :  كيفية إزالة الإعلانات والعروض الخاصة من أمازون كيندل

اكتب النص التالي في محرر ، ثم احفظه باسم “loops.sh”:

#!/bin/bash

  for val in $(seq 5 0.2 6.6); do

  echo "The value is now: $val"

done

بعد ذلك ، نكتب ما يلي لجعل البرنامج النصي الجديد قابلاً للتنفيذ:

chmod + x loop.sh

عندما نقوم بتشغيل البرنامج النصي ، تتم طباعة عداد الحلقة في النافذة الطرفية. يمكننا بعد ذلك كتابة ما يلي لرؤية زيادة عداد الحلقة العشرية مع كل تكرار للحلقة:

./loop.sh

تذكر أن ذلك seqيمكن أن يعد تنازليًا أيضًا ؛ يمكنك استخدام ذلك في الحلقات بنفس الطريقة.

جميل وبسيط

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

نظرًا لأننا غالبًا ما نحتاج إلى إنشاء ملفات اختبار ذات أحجام واقعية بسرعة ، فإننا نستخدمها seqمع سلسلة تنسيق. نقوم بعد ذلك بإعادة توجيه الإخراج لإنشاء ملف يحتوي على العديد من سطور البيانات الوهمية كما نريد.

اترك تعليقاً

لن يتم نشر عنوان بريدك الإلكتروني. الحقول الإلزامية مشار إليها بـ *

error: عفوا محتوي هذا الموقع محمي بموجب قانون الألفية للملكية الرقمية !!