انجمن کاربران لینوکس ایران - تکنوتاکس سابق

نسخه ي کامل: لوله کشی مجازی
شما در حال مشاهده نسخه ي متني اين صفحه هستيد. مشاهده نسخه کامل تر با قالب بندي صحيح
سلام خدمت همه‌ی دوستان گرامی

بالاخره مجبور شدم عضو شم و این تاپیک رو بزنم.
خب من یه مشکل توی لوله کشی بین دستورات در خط فرمان دارم. دقیق ترش اینکه می خوام با wget صفحه‌ی اول یه سایت رو به صورت html دانلود کنم و بعد خروجی رو بدم به دستور sed تا یه سری تغییرات روی اون فایل انجام بده و دوباره اجراش کنم. یعنی یه همچین چیزی:

کد :
wget http://example.com/ | sed ... > result.html

خب مشکل اینجاست که به محض اینکه wget شروع به کار میکنه و قبل از اینکه محتوای html سایت به صورت کامل دانلود شه sed کارش رو انجام میده و فایل result.html رو خالی تحویل میده.

می خواستم ببینم چطور میشه به sed گفت صبر کنه تا wget کارش رو به طور کامل انجام بده بعد شروع به کار کنه. یا به قول دوستان حرفه ای تر به جای لوله کشی واقعی از لوله کش مجازی استفاده کنه؟
سلام،

خب دو تا دستور را با && از هم مجزا کنید. این طوری اول wget کارش را میکنه و شما بعدش روی صفحه یا صفحات مورد نظر پردازشتون را با sed انجام میدید.
برای اینکار فکر کنم curl مناسب‌تر باشه. اما برای استفاده با wget اینطوری استفاده کنید:
کد :
wget -O - http://example.com -q | sed .... > result.html
ممنون از راهنمایی های خوبتون. Smile