انجمنهای فارسی اوبونتو
کمک و پشتیبانی => انجمن عمومی => نویسنده: pronetin در 21 تیر 1389، 02:12 بظ
-
سلام
من یک فایل دارم. می خواهم تنها برخی از خطوط اون را در خروجی چاپ کنم. فقط می خوام خطوطی را دریافت کنم که در آن ? نباشد.
وقتی دستور زیر را می زنم جواب نمی دهد:
cat filname | grep [^?]
چگونه باید فقط خطوطی که ? در آن ها نیست را در خروجی نشان دهم؟
محتویات فایل مشابه زیر است:
5975/tcp open unknown
5976/tcp open unknown
5977/tcp open ncd-pref-tcp?
5978/tcp open ncd-diag-tcp?
5980/tcp open unknown
-
این که شما نوشتی یعنی خطهایی رو پیدا کن که توش عبارتی به غیر از ؟ باشه یعنی فقط خطهایی انتخاب نمیشه که فقط و فقط توش علامت سوال باشه، نه اینکه خطهایی که توش علامت سوال نیست.از سوییچ i استفاده کن برای invert match یه چیزی مثل این :
cat filname | grep -v [?]
یه کم گنگ میشه گاهی وقتها ولی خوب زیاد سخت نیست. کتاب
Mastering Regular Expressions, 3rd Edition
By Jeffrey E. F. Friedl
خیلی معرکست :) حیف ترجمه نشده و فکرم نکنم اگه ترجمه شه چیز درستی از آب دربیاد
-
متشکرم از رهنمایی تون.
اگر کسی این کتاب را خواست می تواند از لینک زیر آن را دانلود کند.
http://www.mediafire.com/?5fetdafnonn (http://www.mediafire.com/?5fetdafnonn)
-
بعید میدونم اینکه شما لینک کردی با قوانین سایت مطابقت داشته باشه. گرچه حقیقت اینه که من خودم هم این کتاب رو غیر قانونی دارم ولی این از اون کتابهاییه که اگه قصد خرید داشته باشم :) میخرم.