با استفاده از sed یک اسکریپت بنویسید که فرض میشود در هر خط فایل ورودی یک آدرس ایمیل وجود دارد و تنها نام کاربری (بخش قبل از @) را استخراج و در فایل خروجی ذخیره کند.
22.0 بازدید آخرین ویرایش در 201 روز قبل ساعت 03:38 0.0
میتوانید از sed با الگوهای منظم برای حذف قسمت بعد از @ استفاده کنید و فقط گروه اول را چاپ کنید. روش ساده: با گزینه -E (یا -r در برخی نسخهها) از عبارت با دامنهٔ گسترده استفاده کنید و با -n جلوی چاپ پیشفرض را بگیرید و از /p برای چاپ خط اصلاحشده بهره ببرید، سپس خروجی را با > به فایل جدید هدایت کنید. مثال: sed -E -n 's/^([^@]+)@.*$/\1/p' input.txt > output.txt. توجه کنید در برخی سیستمها باید از نگارش پایه و فرمت \( \) و \+ استفاده کنید و از فرار دادن کاراکترها در شل غافل نشوید.
1 پاسخ
جدید ترین قدیمی ترین بالاترین امتیاز پاسخ های من
در حال بارگیری...
برای ارسال پاسخ باید با حساب کاربری وارد شوید.
ورود به حساب کاربری
این دستور sed نام کاربری را از هر خط ایمیل استخراج میکند و فقط قسمت قبل از @ را چاپ میکند. با گزینه -n چاپ را خاموش میکند و با استفاده از \1 نتیجه را چاپ میکند. در برخی سیستمها باید از -E یا -r استفاده کرد و نگارشهای مختلف sed ممکن است فرار کاراکترها را به شیوهای متفاوت مدیریت کند. توجه کنید خطوطی که فاقد @ هستند یا دارای فرمت غیرمعمولاند خروجی نامشخصی خواهند داشت؛ اگر این رفتار را نمیخواهید، میتوانید از awk یا اضافهکردن شرطهای اضافی استفاده کنید.
گزارش