معکوس کردن جملات یک متن

؟نینک سوکعم ور هلمج کی میشاب هتشاد مزال هدموا شیپ الاح ات

یا در اصل

تا حالا پیش اومده لازم داشته باشیم یک جمله رو معکوس کنین؟

یکی از دوستان چنین نیازی داشت، ازم کمک خواست و من این صفحه رو براش درست کردم:

http://jadi.net/makoos

نیاز عجیبیه ولی به شکل خیلی بامزه ای همون روز عصر به درد خودم هم خورد (می خواستم توی فایل متنی نمایشنامه شهر قصه نوشته بیژن مفید که پی دی اف بود دنبال یک متن بگردم و ظاهرا باید متن مورد جستجو رو برعکس تایپ می کردم). خلاصه همین.

نکته ۱: دستور tac که برعکس cat است اینجا کاربرد مناسب نداره چون جای خطوط رو هم جابجا می کنه. البته شاید سوییچی برای حل اون مشکل باشه. من چک نکردم.

نکته ۲: Reith به دستور rev اشاره کرد. دقیقا همینکار رو میکنه (: می شد به جای چند خط پی اچ پی فقط خروجی رو بدم به rev و برگردونم و جو «چرا لینوکس رو دوست دارم» به جریان بدم‌ (: البته به شرطی که بچه ها قول می دادن چیز خاصی توش تزریق نکنن (((:

  • منیره

    یه سایتی بود قبلا …. همین کارو میکرد :)
    دقیقا من واسه تبدیل پی‌دی‌اف فارسی به ورد ازش استفاده میکردم :)

  • منیره

    بالاخره یه کامنت گذاشتم و ثبت شد …. بارها خواستم تو وبلاگت کامنت بذارم و نمیشد :دی

  • Wahid

    آره متاسفانه برای جستجو در PDFها برخی برنامه های برعکس می گردن!!
    ممنون امیدوارم موقع نیاز بشه به سایت دسترسی داشت!
    یا مثلاً ای کاش الگوریتمش رو … هیچی. الگوریتمش سادس یه لحظه رفتم تو فکر. :)

    • جادی

      البته برنامه ها برعکس نمی گردن، پی دی اف سازهای فارسی کلمات رو معکوس می چینن (:

  • Reith

    echo ‘؟نینک سوکعم ور هلمج کی میشاب هتشاد مزال هدموا شیپ الاح ات’ | rev

    • جادی

      این دستور خوب بود. اینو نمی دونستم. ممنون (:‌دقیقا هم درست کار می کنه.

  • می‌شه با استفاده از کلید‌های Alt+i در صفحه‌کلید استاندارد فارسی این کار رو انجام داد.

    • جادی

      من تست کردم نشد. این جریان ربط به صفحه کلید نداره منطقا و ربط داره به ادیتور که جابجا کنه متن ها رو موقع ورودی.

  • چه باحال! چجوری درستش کردی جادی؟

  • حامد

    دوستان
    با tac نمیشه این کارو کرد ؟

    • جادی

      تک رو می دونستم و تست کردم. خطوط رو هم جابجا می کنه. یعنی خط آخر می یاد اول. حداقل در کاربرد ساده اش

  • با کامند زیر هم توی ترمینال میشه این کار رو کرد.

    echo “reverse text.” | rev

    با پایتون هم میشه.

    echo ‘reverse text.’ | python -c “print raw_input()[::-1]” # end

    • ساسان

      سلام
      با این کار کل محتویات فایل معکوس میشه؟
      اگر بخوایم هر خط رو معکوس کنه چی؟

      • علیرضا

        برای معکوس کردن هر خط باید از کامند tac که برعکس cat هست استفاده بکنی

  • من همیشه این کارو می‌کنم جادی
    [code]
    tac -rs ‘.’ –
    [/code]

    • جادی

      مشکل تک اینه که خطوط رو هم جابجا می کنه. یعنی خط آخر می ره اول. ولی یک دستور rev دوستان گفتن که خیلی خوب بود (:

  • علیرضا

    خیلی ممنون جادی عزیز.
    کاربرد اصلیش برای تبدیل فایلهای پی دی اف به ورد هست که معمولا برعکس نشون داده میشه.

  • یکی از کارهایی که می‌شه انجام داداستفاده ازش در رمزنگاری هست. البته درکنار تکنیک‌های دیگه‌ی رمز نگاری و نه به تنهایی.
    یه مثال خیلی ابتدایی می‌زنم، فرض کنید کلمه ای رو با تابع SH1 رمزنگاریش کردیم، حالا اونو برعکس می‌کنیم و ذخیره می‌کنیم.
    البته مطمئن نیستم اینجوری چقدر امنیت متن رمز نگاری شده بیشتر می‌شه، اما خوب به عنوان یه ایده مطرحش کردم :).

    • جادی

      ایده بدی هم نیست. حداقل در مقابل حملات ساده دیکشنری محافظت شده (:

  • علیرضا

    خوب استفاده از rev که ترسی نداره! میتونی بزنی
    echo ‘$TEXT’ | rev
    که البته TEXT یه متغیر پی‌اچ‌پی هست، توی بش که ” متغیر رو حساب نمیکنه! :)

    • علیرضا

      الان که دوباره نظرمو خوندم، دیدم باز هکر میتونه کارش رو بکنه! مثلا خودش میتونه یدونه ‘ بزنه! ولی باز میشه درستش کرد! با یه ریپلیس! فقط replace میکنی که ‘ رو تبدیل کنه به ” و بعد دوباره ” رو تبدیل بکنه به ‘
      درضمن، این ‘ ها رو وردپرس اینطور میکنه، تقصیر من نیست! :دی

  • هادی

    من متن فارسی رو با Foxit Reader کپی می کنم معکوس می یفته
    ولی با adobe reader 9 درست در می یاد
    فکر کنم تو adobe reader 7 هم معکوس می یفتاد

    فکر کنم مشکل از برنامه هست

  • salam

    آقای جادی،
    با توجه به این که شما نقاط بسیاری رفتین به نظر شما توی ایران و خارج از کشور(هر کدوم جدا جدا)
    کسی که رشته علوم کامپیوتر خونده بارش بهتره با مهنسی نرم افزار؟البته اگر کیفیت آموزش و علاقه دانشجو یکسان باشه برای هر دو

    انگار شرکت های بزرگ مثل گوگل و اپل با علوم کامپیوتری ها بیش تر جورن؟

    • جادی

      خب نمی دونم راستش. ولی کلا من فقط موقع استخدام در سی ثانیه گفتم که مدرک فلان دارم. هیچ کس بعدا نپرسید که مدرک نشون بده یا دانشگاه چی یاد گرفتین… بخصوص تو رشته های ما که بسیار به روز می شن دانشگاه خیلی جدی نیست و فقط نشون می ده «یک کم باهوش/خرخون/منظم/برنامه ریز/متقلب/… بودم».

      البته اینم بگم که دانشگاه رو توصیه می کنم! خیلی کشورها حتی اگر بخواین با شرکت خودتون برین توشون کار کنین نیاز به مدرک دارن که ویزا بدن.

      • salam

        متوجه نشدم..خوب سییوال من این بود مباحثی که تو علوم کامپیوتر مطرح میشه بدردبخور تره برای کار در دنیای واقعی یا مطالبی که تو مهندسی نرم افزار هست؟

        • جادی

          خب نمی دونم (: من هیچ کدوم از این دو رشته رو نخوندم و بررسی هم نکردم. ولی اینو می تونم بگم که دنیای کامپیوتر دنیای سریعی است و احتمالا هیچ چیزی که توی دانشگاه درس بدن به طور مستقیم در زندگی شغلی روزمره کاربرد نداره (:

  • salam

    راستی یه پست در وردش بزنی عالی میشه!

  • حسن (پیمانکار)

    آقا یک نگاهی هم به این سایت بنداز کامنت می گذارم بعذا ثبت نمیشه!

    • جادی

      بر روح پدر سانسورچی صلوات‌ (:

  • Reza

    سلام
    جادی جان عذر میخوام، این با پی اچ پی نوشته شده؟

    • جادی

      عذرخواهی برای چی؟ (: بله. خیلی هم ساده است دیگه. ورودی رو می خونه و خط به خط می ده به تابع strrev و چاپ می کنه.

  • محمد

    جه قدر لوس ، ولی جالب و گیک پسند!

  • arvin

    درود آقای جادی :D

    میشه روش استفاده از این تابع رو بگین ؟ که چه ورودی هایی دریافت میکنه ؟

    ممنون

  • ميثم

    خدا خيرت بده .يك ساعت داشتم سرچ مي كردم