گربه
La گربه برنامه تعدادی گزینه جالب دارد. بسیاری از آنها برای کمک به تجسم بهتر محتوای متن استفاده می شوند. یک مثال این است -A گزینه ای که برای نمایش کاراکترهای غیر چاپی در متن استفاده می شود. مواقعی وجود دارد که می خواهیم بدانیم آیا نویسه های کنترلی در متن قابل مشاهده ما تعبیه شده است یا خیر. رایجترین آنها عبارتند از نویسههای برگه (برخلاف فاصلهها) و بازگردانیهای حامل، که اغلب بهعنوان نویسههای انتهای خط در فایلهای متنی به سبک MS-DOS وجود دارند. یکی دیگر از موقعیتهای رایج، فایلی است که حاوی خطوط متن با فاصلههای انتهایی است.
بیایید یک فایل آزمایشی با استفاده از گربه به عنوان یک واژه پرداز اولیه برای انجام این کار، ما فقط دستور را وارد می کنیم گربه (همراه با تعیین یک فایل برای خروجی تغییر مسیر) و متن ما را تایپ کرده و به دنبال آن وارد برای پایان دادن به درستی خط، پس Ctrl-d، برای نشان دادن به گربه که به انتهای پرونده رسیده ایم. در این مثال، یک کاراکتر تب اصلی را وارد می کنیم و خط را با چند فاصله دنباله دنبال می کنیم:
[me@linuxbox ~]$ cat > foo.txt
روباه قهوه ای سریع از روی سگ تنبل پرید. [me@linuxbox ~]$
[me@linuxbox ~]$ cat > foo.txt
روباه قهوه ای سریع از روی سگ تنبل پرید. [me@linuxbox ~]$
در مرحله بعد استفاده خواهیم کرد گربه با -A گزینه نمایش متن:
[me@linuxbox ~]$ گربه foo.txt -A
^روباه قهوه ای سریع از روی سگ تنبل پرید. $ [me@linuxbox ~]$
[me@linuxbox ~]$ گربه foo.txt -A
^روباه قهوه ای سریع از روی سگ تنبل پرید. $ [me@linuxbox ~]$
همانطور که در نتایج می بینیم، کاراکتر تب در متن ما با نشان داده می شود ^I. این یک نماد متداول است که به معنای "Control-I" است که همانطور که مشخص است، همان کاراکتر برگه است. همچنین می بینیم که الف $ در انتهای واقعی خط ظاهر می شود، که نشان می دهد متن ما حاوی فاصله های انتهایی است.
متن MS-DOS در مقابل. متن یونیکس
یکی از دلایلی که ممکن است بخواهید از آن استفاده کنید گربه جستجوی کاراکترهای غیرچاپی در متن به معنای مشاهده بازگشت های مخفی کالسکه است. بازگشت مخفی کالسکه از کجا می آید؟ داس و ویندوز! یونیکس و داس انتهای یک خط را در فایل های متنی یکسان تعریف نمی کنند. یونیکس یک خط را با یک کاراکتر تغذیه خط (ASCII 10) به پایان می رساند در حالی که MS-DOS و مشتقات آن از بازگشت متوالی حمل (ASCII 13) و تغذیه خط برای پایان دادن به هر خط متن استفاده می کنند.
روش های مختلفی برای تبدیل فایل ها از DOS به فرمت یونیکس وجود دارد. در بسیاری از سیستم های لینوکس، برنامه هایی به نام وجود دارد dos2unix و unix2dos، که می تواند فایل های متنی را به فرمت DOS و از آن تبدیل کند. با این حال، اگر ندارید dos2u-nix در سیستم شما، نگران نباشید. فرآیند تبدیل متن از فرمت DOS به فرمت یونیکس بسیار ساده است. صرفاً شامل حذف کالسکه های متخلف می شود. این امر به راحتی توسط چند برنامه مورد بحث در این فصل انجام می شود.
cat همچنین گزینه هایی دارد که برای تغییر متن استفاده می شود. دو مورد برجسته عبارتند از -n که خطوط را شماره گذاری می کند و -s که خروجی چندین خط خالی را سرکوب می کند. ما می توانیم به این ترتیب نشان دهیم:
[me@linuxbox ~]$ cat > foo.txt
روباه قهوه ای سریع
[me@linuxbox ~]$ cat > foo.txt
روباه قهوه ای سریع
از روی سگ تنبل پرید.
[me@linuxbox ~]$ foo.txt گربه -ns
از روی سگ تنبل پرید.
[me@linuxbox ~]$ foo.txt گربه -ns
1
2
3
1
2
3
[me@linuxbox ~]$
[me@linuxbox ~]$
روباه قهوه ای سریع
روباه قهوه ای سریع
از روی سگ تنبل پرید.
از روی سگ تنبل پرید.
در این مثال، ما یک نسخه جدید از خود ایجاد می کنیم foo.txt فایل تست که شامل دو خط متن است که با دو خط خالی از هم جدا شده اند. پس از پردازش توسط گربه با -نه گزینه ها، خط خالی اضافی حذف شده و خطوط باقی مانده شماره گذاری می شوند. در حالی که این فرآیند چندانی برای انجام روی متن نیست، یک فرآیند است.