سؤال

وهكذا أنا أبحث عن نمط من هذا القبيل:

وحجم = '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]+

وآمل أن يساعد هذا!

وآدم

لا تنسى الفاصلة الماضية.

'
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top