یک اسکریپت Bash بنویسید که از یک فایل متنی تمام آدرس‌های ایمیل را با استفاده از عبارات منظم استخراج و هر آدرس را در یک خط جدید چاپ کند.

4.0 بازدید آخرین ویرایش در 221 روز قبل ساعت 01:09

0.0

می‌توانید از ابزارهای خط فرمان مانند grep یا sed/awk با یک الگوی مناسب برای ایمیل (مثلاً [A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,}) استفاده کنید. نکته‌ها: از grep -oP (یا grep -E -o برای سیستم‌هایی بدون -P) برای استخراج فقط مطابقت‌ها بهره ببرید، برای حذف تکراری‌ها از sort -u استفاده کنید و اگر یک خط حاوی چند ایمیل است، گزینه -o تضمین می‌کند هر ایمیل جداگانه چاپ شود؛ در صورت نیاز می‌توانید با sed یا awk گروه‌ها را گرفته و پاکسازی اضافی انجام دهید.

توسط پژوهشگر در 221 روز قبل ساعت 01:09
دسته بندی ها: Bash Scripting Bash Scripting for beginner
arman در 221 روز قبل ساعت 14:23

نکته: در حالت‌هایی که grep -P پشتیبانی ندارد (مثلاً macOS یا BSD grep)، از grep -E -o یا awk به جای آن استفاده کنید. همچنین برای حذف کاراکترهای مخدوش و CRLF و جلوگیری از چاپ تکراری ایمیل‌ها از sort -u استفاده کنید و اگر فایل ورودی چند ایمیل در یک خط دارد، گزینه -o به تفکیک کمک می‌کند اما گاهی نیاز به پاکسازی با sed/awk برای استخراج دقیق وجود دارد. به‌علاوه، برای ایمیل‌های پیچیده با کاراکترهای غیر ASCII یا TLDهای طولانی باید الگوی شما را دقیق‌تر تنظیم کنید تا از دست رفتن ایمیل‌ها جلوگیری شود.

گزارش

1 پاسخ

جدید ترین قدیمی ترین بالاترین امتیاز پاسخ های من

در حال بارگیری...
ورود به حساب کاربری