سیستم عامل لینوکسمقالات وب
10 مورد از نمونه دستورهای Tr در لینوکس که باید بدانید

همانطور که می دانید Tr( که کوتاه شده عبارت Translate است) یک ابزار خط فرمان مفید است که می تواند کاراکترها را از ورودی stdin ترجمه یا پاک نماید و آن ها را بر روی stdout بنویسد. این یک برنامه کاربردی برای دستکاری متون در خط فرمان است. در این مقاله سعی می کنیم برخی از نمونه های کاربردی این دستور را برای کاربران مبتدی لینوکس بیان کنیم. پس همراه وب ایده باشید.
سینتکس دستور tr به صورت زیر است که در آن کاراکترها در SET1 به کاراکترهای SET2 ترجمه می شوند.
$ tr flags [SET1] [SET2]
نمونه دستورات tr در لینوکس:
یکی از نمونه های ساده این دستور برای تغییر حروف نوشته شده کوچک در متن به حروف انگلیسی بزرگ و برعکس است. به دستور زیر توجه کنید:
$ cat linux.txt linux is my life linux has changed my life linux is best and everthing to me..:) $ cat domains.txt | tr [:lower:] [:upper:] LINUX IS MY LIFE LINUX HAS CHANGED MY LIFE LINUX IS BEST AND EVERTHING TO ME..:)
شما می توانید از دستور زیر برای تغییر همه حروغ کوچک به حروف بزرگ در فایل استفاده کنید:
$ cat linux.txt | tr [a-z] [A-Z] LINUX IS MY LIFE LINUX HAS CHANGED MY LIFE LINUX IS BEST AND EVERTHING TO ME..:)
برای ذخیره کردن نتایج نوشته شده در فایل stdout برای پردازش های بعدی می توانید از دستوراتی شبیه دستور زیر استفاده کنید:
$ cat linux.txt | tr [a-z] [A-Z] >output.txt $ cat output.txt LINUX IS MY LIFE LINUX HAS CHANGED MY LIFE LINUX IS BEST AND EVERTHING TO ME..:)
در مورد ریدایرکت کردن می توانید ورودی را به کمک ریدایرکت ورودی به tr ارسال کنید و خروجی را به کمک همین دستور به فایل بفرستید:
$ tr [a-z] [A-Z] < linux.txt >output.txt
یکی دیگر از قابلیت های کاربردی این دستور این است که می توانید از فلگ -d برای پاک کردن کاراکترها استفاده کنید. مثلا برای حذف اسپیس ها در نام دامنه می توانید از دستور زیر کمک بگیرید:
$ cat domains.txt www. tecmint. com www. fossmint. com www. linuxsay. com $ cat domains.txt | tr -d '' www.tecmint.com www.fossmint.com www.linuxsay.com
اگر در یک بخش از متن کاراکترهای تکراری وجود دارد ، می توانید از فلگ -s برای فشرده سازی کاراکترها استفاده کنید و تنها یک کاراکتر را نمایش دهید:
$ cat domains.txt www.tecmint.....com www.fossmint.com www.linuxsay.com $ cat domains.txt | tr -s '' www.tecmint.com www.fossmint.com www.linuxsay.com
دستور زیر بیان می کند که همه حروف باید پاک شوند و تنها UID باقی بماند. برای اینکار از گزینه -c استفاده می شود:
$ echo "My UID is $UID" | tr -cd "[:digit:]\n" OR $ echo "My UID is $UID" | tr -d "a-zA-Z"
در مثال زیر یک خط واحد از کلمات را به خطوط مختلف تبدیل می کنیم.
$ echo "My UID is $UID" My UID is 1000 $ echo "My UID is $UID" | tr " " "\n" My UID is 1000
این گزینه به مثال قبلی مان مربوط است. شما می توانید خطوط متعددی از کلمات را به یک جمله واحد تبدیل کنید. برای اینکار از دستوری شبیه دستور زیر کمک بگیرید:
$ cat uid.txt My UID is 1000 $ tr "\n" " " < uid.txt My UID is 1000
همچنین می توانید به کمک این دستور یک کاراکتر واحد را به کاراکتر دیگری تبدیل کنید. به مثال زیر توجه نمایید:
$ echo "Webide.ir=>Linux-HowTos,Guides,Tutorials" | tr " " ":" webide.ir:=>Linux-HowTos,Guides,Tutorials
موارد متعددی را می توانید به همراه tr مورد استفاده قرار دهید. برای اینکه بتوانید از این گزینه ها اطلاع یابید از دستور زیر استفاده کنید:
$ man tr
خوب کار ما تمام شد. همانطور که مشاهده کردید دستور tr یکی از دستورات بسیار کاربردی در لینوکس است. شما هم اگر تجربه کار با این دستور را دارید در بخش دیدگاه ها از تجربیات خود صحبت کنید.