هشام رزق الله نشر 12 سبتمبر 2015 أرسل تقرير مشاركة نشر 12 سبتمبر 2015 قمتُ بكتابة أمر باستخدام Sed لحذف جميع التعليقات في ملف ما:sed -i /^#/d /path/to/fileلكن المشكلة عندما يكون هنالك فراغ أمام `#` فإنه لا يتم حذف التعليقات:#this is a good comment ---- works #this is an indented comment ---- doesn't workلاحظ أنه لا يعمل على التعليق الثاني، فكيف أُغير هذا الأمر حتى أتمكن من حذف جميع التعليقات ؟ اقتباس رابط هذا التعليق شارك على الشبكات الإجتماعية More sharing options...
1 TheProgrammer نشر 12 سبتمبر 2015 أرسل تقرير مشاركة نشر 12 سبتمبر 2015 (معدل) يمكنك إضافة `[ \t]*` والتي تعني تحديد جميع المسافات في بداية السطر إلى الأمر ليصبح الأمر كالتالي:sed -e '/^[ \t]*#/d'وهذا الأمر سيحدد جميع الأسطر التي تبدأ من 0 أو أكثر مسافة أو tab ثم تليها رمز # وسيقوم الأمر sed بحذف هذه الأسطر.وهنالك عدة أوامر أخرى تقوم بنفس الوظيفة، مثل الأمر التالي:sed '/^[[:blank:]]*#/d' file.txtأو الأمر التالي:sed -e '/^[[:space:]]*/d'كما يمكنك استخدام grep بدلا من sed ليصبح الأمر كالتالي:grep -v '^[[:blank:]]*#' file.txtالمصدر تم التعديل في 12 سبتمبر 2015 بواسطة TheProgrammer اقتباس رابط هذا التعليق شارك على الشبكات الإجتماعية More sharing options...
السؤال
هشام رزق الله
قمتُ بكتابة أمر باستخدام Sed لحذف جميع التعليقات في ملف ما:
لكن المشكلة عندما يكون هنالك فراغ أمام `#` فإنه لا يتم حذف التعليقات:
لاحظ أنه لا يعمل على التعليق الثاني، فكيف أُغير هذا الأمر حتى أتمكن من حذف جميع التعليقات ؟
رابط هذا التعليق
شارك على الشبكات الإجتماعية
1 جواب على هذا السؤال
Recommended Posts
انضم إلى النقاش
يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.