OnWorks Linux و Windows Online WorkStations

الشعار

استضافة مجانية على الإنترنت لمحطات العمل

<السابق | المحتويات | التالي>

التحقق من صحة قائمة الهاتف باستخدام grep

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



[me @ linuxbox ~] $ بالنسبة إلى i في {1..10} ؛ صدى "($ {RANDOM: 0: 3}) $ {RANDO M: 0: 3} - $ {RANDOM: 0: 4}" >> phonelist.txt؛ انتهى

[me @ linuxbox ~] $ بالنسبة إلى i في {1..10} ؛ صدى "($ {RANDOM: 0: 3}) $ {RANDO M: 0: 3} - $ {RANDOM: 0: 4}" >> phonelist.txt؛ انتهى


سينتج هذا الأمر ملفًا باسم phonelist.txt تحتوي على عشرة أرقام هاتف. في كل مرة يتكرر الأمر ، يتم إضافة عشرة أرقام أخرى إلى القائمة. يمكننا أيضًا تغيير القيمة 10 بالقرب من بداية الأمر لإنتاج أرقام هواتف أكثر أو أقل. إذا فحصنا محتويات الملف ، نرى أن لدينا مشكلة:



صورة

[me @ linuxbox ~] $ القط phonelist.txt


(232)

298-2265

(624)

381-1078

(540)

126-1980

(874)

163-2885

(286)

254-2860

(292)

108-518

(129)

44-1379

(458)

273-1642

(686)

299-8268

(198)

307-2440


بعض الأرقام مشوهة ، وهي مثالية لأغراضنا ، لأننا سنستخدمها

grep للتحقق من صحتها.

تتمثل إحدى طرق التحقق المفيدة في فحص الملف بحثًا عن أرقام غير صالحة وعرض القائمة الناتجة:



[me @ linuxbox ~] $ grep -Ev '^\([0-9]{3}\) [0-9]{3}-[0-9]{4}$'

قائمة الهاتف.txt (292) 108-518

(129) 44-1379

[me @ linuxbox ~] $

[me @ linuxbox ~] $ grep -Ev '^\([0-9]{3}\) [0-9]{3}-[0-9]{4}$'

قائمة الهاتف.txt (292) 108-518

(129) 44-1379

[me @ linuxbox ~] $


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


أفضل الحوسبة السحابية لنظام التشغيل في OnWorks: