REGEX في AWK وWinGrep
سؤال
وهكذا أنا أبحث عن نمط من هذا القبيل:
وحجم = '0x0'
وفي ملف سجل - ولكن أنا مهتم فقط في أحجام كبيرة (4 أرقام أو أكثر). التعبير المعتاد التالي يعمل كبيرة في EditPadPro (أداة لطيفة BTW)
وحجم = '0X [0-9a-FA-F] {4}
ولكن نفس التعابير المنطقية لا يعمل في AWK - يبدو وكأنه تكرار {4} والعبث عنه. الشيء نفسه مع WinGrep - أي فكرة من معلمو التعابير المنطقية؟ شكرا!
المحلول
ويمكنك في استخدام الواقع AWK، مع التحذير.
وكما ذكر في الصفحة التالية، كنت في حاجة الى خيار سطر الأوامر الخاصة (--re الفاصل الزمني) لجعله ينجح في مسعاه، لأن عبارة الفاصل (و{4}) ليست في مستوى:
http://kansai.anesth.or.jp/gijutu/ AWK / البله / gawk_28.html
وحتى في نهاية المطاف، سوف كنت تريد شيئا يشبه:
awk --re-interval "/size='0x[0-9a-fA-F]{4,}'/" thefile
وهذا سوف طباعة الخطوط التي تطابق.
نصائح أخرى
وأنا لا أعرف من أي بدائل أنيقة إلى {4} لغوي، ولكن إذا كان لا يعمل في بيئة المطلوب هل يمكن اللجوء إلى هذا الإختراق القبيح:
size='0x[0-9a-fA-F][0-9a-fA-F][0-9a-fA-F][0-9a-fA-F]+
وآمل أن يساعد هذا!
وآدم
لا تنسى الفاصلة الماضية.
'