cut - بیرون کشیدن دنباله کاراکتری دلخواه

cut - از این دستور برای بیرون کشیدن متن دلخواه با توجه به ستون مورد نظر استفاده می‌شود.

شکل کلی دستور:

$ cut [options] [file]

 

دستورات زیادی برای پردازش فایل های نوشتاری وجود دارد، که حتماً دلیل آن را می دانید. دستور cut یکی دیگر از این قبیل دستورات می‌باشد. با استفاده از این دستور به راحتی می‌توانید قسمت های دلخواه خود را بر اساس بایت، ستون یا کاراکتر و.. بیرون بکشید.

برای شروع من یک فایل متنی از قبل ایجاد کرده‌ام و در طول آموزش از آن استفاده خواهم کرد :

$ cat -n .../GNU
     1    The plan for the GNU operating system was publicly announced on September 27, 1983, on the net.
     2    unix-wizards and net.usoft newsgroups by Richard Stallman.
     3    Software development began on January 5, 1984, when Stallman quit his job at the Massachusetts Institute of Technology (MIT) Artificial Intelligence Laboratory so that they could not claim ownership or interfere with distributing GNU as free software.
     4    Richard Stallman chose the name by using various plays on words, including the song The Gnu.

حتماً با دستور cat و گزینه‌ی اختیاری n-آشنا هستید. در این فایل متنی که محتویات آن از صفحه‌ی «گنو» در ویکی برگرفته شده است، شامل 4 خط می‌باشد.

نکته : در اینجا منظور از سه نقطه(...) مسیر فایل انتخابی شماست.

در ادامه با گزینه‌‌های اختیاری آن آشنا و برای هرکدام مثالی را می‌آوریم.

گزینه‌های اختیاری:

c-: از این گزینه برای مشخص کردن کاراکتر خاص استفاده می‌شود به این صورت که برای بیرون کشیدن کاراکتر یا متن دلخواه، کافی است شماره‌ی دلخواه را در جلوی آن وارد کنید :

$ cut -c5 .../GNU
p
-
w
a

همین‌طور که می‌بینید در هرخط، کاراکتر پنجم برای ما نشان داده می‌شود.(به عبارت بهتر، اگر یک جدول فرض شود و هر خط در یک سطر از جدول باشد و هر کاراکتر یک ستون را پر کند، ستون پنجم جدول نمایش داده می شود.)

نکته: شاید شما در فایل نوشتاری‌تان بیش از چندخط داشته باشید، این به این علت است که ویراستارهای متن مانند vi,gedti,nano و.. از قابلیت «wrapper content» پشتیبانی می کنند به این معنا که باتوجه به حجم محتوا و میزان صفحه نمایش، خطوط را دسته بندی می‌کنند. برای مشخص کردن هرخط از کلید Enter استفاده کنید.

همچنین شما می‌توانید یه بازه عددی از کاراکترها را مشخص کنید :

$ cut -c5-20 .../GNU
plan for the GNU
-wizards and net
ware development
ard Stallman cho

که در اینجا در هرسطر، از کاراکتر پنجم تا کاراکتر بیستم را برای ما نشان می‌دهد.

همچنین شما ‌می‌توانید نقاط ابتدایی و انتهایی هرخط را مشخص نکنید که در این صورت اگر نقطه شروع را مشخص نکنید، اول هرسطر را نقطه شروع فرض گرفته خواهد شد و اگر نقطه انتهایی را در نظر نگیرید، تا انتهای سطر، نقطه خاتمه در نظر گرفته خواهد شد.

در مثال زیر نقطه انتهایی در نظر گرفته نمی‌شود پس انتظار می‌رود از کاراکتر پنجم تا آخرین کاراکتر هر سطر در خروجی استاندارد نمایش داده شود :

$ cut -c5- .../GNU
plan for the GNU operating system was publicly announced on September 27, 1983, on the net.
-wizards and net.usoft newsgroups by Richard Stallman.
ware development began on January 5, 1984, when Stallman quit his job at the Massachusetts Institute of Technology (MIT) Artificial Intelligence Laboratory so that they could not claim ownership or interfere with distributing GNU as free software.
ard Stallman chose the name by using various plays on words, including the song The Gnu.

در مثال زیر نقطه ابتدایی در نظر گرفته نمی‌شود پس انتظار می‌رود از ابتدای هرخط تا مکان (کاراکتر) دلخواه نمایش داده شود :

$ cut -c-20 .../GNU
The plan for the GNU
unix-wizards and net
Software development
Richard Stallman cho

d-و f-: این دو گزینه اختیاری با یکدیگر معمولاً استفاده می‌شوند. گزینه‌ی d-در اصل یک محدودکننده‌ی کاراکتری  و f-یک محدودکننده‌ی شمارشی می‌توان فرض کرد. این به این معناست که کاراکتر مورد نظر خود را در جلوی گزینه‌ی d-نوشته و (فرضاً)وظیفه‌ی دستور cut این است که به دنبال این کاراکتر باشد تا جایی که نقطه انتهایی آن را گزینه‌ی f-مشخص کند. مثال زیر توضیحات را روشن‌تر خواهد کرد:

$ cut -d "o" -f-5 .../GNU
The plan for the GNU operating system was publicly announced on September 27, 1983,
unix-wizards and net.usoft newsgroups by Richard Stallman.
Software development began on January 5, 1984, when Stallman quit his job at the Massachusetts Institute
Richard Stallman chose the name by using various plays on words, including the s

در اینجا دستور توسط گزینه‌ی f-وکاراکتر معلوم کننده‌ی آن که در اینجا «o» می‌باشد، تمامی کاراکترها را رد می‌کند تا به پنجمین از این کاراکتر برسد که عدد 5 توسط گزینه‌ی اختیاری f-مشخص شده است.

نکته: نحوه‌ی انتخاب بازه‌ی عددی گزینه‌ی f-همانند c-است.