نحوه استفاده از دستور cut

دستور cut

نحوه استفاده از دستور cut

دستور cut

استفاده از دستور cut  در سیستم عامل لینوکس

دستور cut  به معنی قیچی کردن یا بریدن می باشد . یعنی همانطور که از قیچی برای بریدن

قطعه ای از پارچه یا کاغذ استفاده می کنیم از دستور cut برای جداسازی قطعه ای از یک

فایل و نمایش آن قطعه به شکلی دیگر استفاده می کنیم .

مثلا فرض کنید فایلی از استخراج داده های روی دیتابیس خود استخراج کرده اید

و تعداد داده های این فایل زیاد است و مثلا بدنبال فیلدی خاص در این فایل می گردید .

مثلا فرض کنید داده های شما مربوط به اطلاعات حساب افراد در یک بانک است و پس از

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

کرده و برای منظوری یا محاسبه ای از آن استفاده نمایید . در این جا میتوانید با استفاده از

دستور cut و با توجه به اینکه بدانید مثلا شماره حساب کدام فیلد در این فایل است با

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

یا در فایل دیگری ذخیره نمایید .

یا مثلا فرض کنید اطلاعات پرسنلی افراد را به همراه آدرس و شماره تلفن و نام و

نام خانوادگی و غیره را در فایلی ذخیره کرده اید و بنا به دلایلی نیاز به فیلد نام و نام خانوادگی

افراد دارید ؛ در این صورت می توانید با دستور cut این فیلد ها را از این فایل جداسازی کرده

و در فایل دیگری ذخیره نمایید .

برای بهتر متوجه شدن نحوه استفاده از دستور cut  مثال هایی زده ام که در زیر قابل مشاهده

است. اولا بهتر است بدانیم که دستور cut  قادر است جدا سازی را بر اساس حروف و یا فیلد

و یا بایت در داخل یک فایل انجام دهد که با حروف  c به معنی character و f به معنی فیلد field

و یا b به معنی byte.

 در مثال های زیر نحوه استفاده از هر کدام از گزینه ها را نمایش می دهیم :

 

۱- جدا کردن فیلدی خاص از یک فایل  و نمایش آن روی صفحه 

فرض کنید می خواهمی فیلد اول از فایل etc/passwd/ که شامل نام کاربران است را از این فایل

حدا کرده و روی صفحه نمایش دهیم . بدین منظور از دستور زیر استفاده میکنیم :

cut   -f 1  -d:  /etc/passwd 

اما دستور بالا جه می گوید

 f 1- یعنی فیلد اول

: d- یعنی delimiter یا جداکننده در این فایل علامت “:” است .

cut -f 1 -d: /etc/passwd

 همانطور که در شکل بالا مشاهده میکنید, ستون اول از فایل etc/passwd/ روی صفحه به ما نمایش

داده شده است که می توانیم این مقدار جدا شده را داخل فایل دیگری کپی کنیم که با دستور

زیر انجام می دهیم :

cut  -f 1 -d: /etc/passwd  >  users

دستور بالا مقدار ستون اول از فایل etc/passwd/ را داخل فایلی بنام users کپی میکند .

اگر این فایل وجود نداشته باشد که بوجود می آید و اگر وجود داشته باشد این مقدار جدید

روی مقدار قبلی overwrite خواهد شد .

لازم به ذکر است که ترتیب گزینه ها مهم نیست یعنی اینکه اول گزینه f  بیاید و بعد گزینه d

 یا ابتدا گزینه d  و بعد از آن f  بیاید مهم نیست .

 

۲- جدا گردن بعضی  از ستون های  یک فایل با دستور cut 

فرض کنید میخواهیم که از فایلی بنام csv.txt فیلدهای اول و چهارم را از این فایل جدا کنیم

cut  -d ” ” -f 1,4  csv.txt 

cut -d" " -f1,4 csv.txt

در مثال بالا جدا کننده فیلدها یا ستون ها در فایل “فاصله”  یا ” ” می باشد و فیلدهای ۱و ۴  یعنی

فقط فیلد ۱ وفیلد چهارم از این فایل را نمایش بده .

یا مثلا میخواهیم از فایل etc/passwd/  فید نام کاربران و uid یعنی ستون سوم و ستونی که

نماینده نوع shell ی که آنها استفاده میکنند باشد یعنی فید هفتم را نمایش دهیم :

cut  -d:  -f1,3,7  /etc/passwd

cut -d: -f1,3,7 /etc/passwd

 

۳- نمایش یک رنجی از ستون های یک فایل با دستور cut

فرض کنید می خواهیم از فایل csv.txt ؛ ۸ حرف اول را کنده و روی صفحه نمایش دهیم

cut  -c 1-8 csv.txt

cut -c1-8 csv.txt

همانطور که در بال مشاهده می کنید استفاده از گزینه  c 1-8 یعنی حروف یا

کارکتر ۱ تا هشتم از ابتدای هر خطر را بکن و نشان بده.

 

۴- نمایش خطوط از ابتدای فایل تا شماره  کارکتر یا حرف خاص از ابتدای فایل  توسط دستور cut 

می توانیم از دستوراتی به شکل زیر استفاده کنیم :

مثلا می خواهیم از بعد از حرف هشتم از ابتدای هر خطر تا انتهای خط را نمایش دهیم

cut  -c -8  csv.txt

cut -c -8 csv.txt

۵- نمایش خطوط فایل از شماره کارکتر یا حرف خاص تا انتهای هر خط توسط دستور cut 

 حالا فرض کنید می خواهیم از حرف دهم هر خط تا انتهای خط را کنده و نمایش دهیم

cut  -c   ۱۰-  csv.txt

cut -c 10- csv.txt

 

۶- ترکیب دستور grep  به همراه دستور cut

 فرض کیند میخواهیم کلیه خطوطی از فایل etc/passwd  که shell آنها bin/bash/ است را

جستجو کرده و فقط ستون ۱و ستون ۶ از این خطوط را cut  کرده و نمایش دهیم :

برای مشاهده مثال های دستور grep  به اینجا مراجعه کنید

grep   ‘/bin/bash’   /etc/passwd  | cut -d:  -f1,6 

grep '/bin/bash' /etc/passwd|cut -d:

۷- استفاده از گزینه complement–  در دستور cut

 با استفاده از گزینه complement  به همراه  c-  میتوانیم بگوییم که بغیر از کاراکتری که

شماره آن ذکر شده باقی حروف را نمایش بده.

اگر از complement استفاده نکنیم و فقط c-  آورده شده باشد , تنها شماره عددی که به

همراه گزینه c- آمده مثلا  c2  یعنی فقط حرف دوم نمایش داده شود به مثال های زیر توجه کنید

echo  ‘hello’ | cut  –complement  -c1

در دستور بالا فیلد اول از کلمه hello کنده شده و باقی آن نمایش داده میشود

و

echo ‘hello’ | cut  -c1

در دستور بالا فقط حرف اول از کلمه hello  نمایش داده می شود

 

cut --complement -c2

۸- نمایش خروجی دستور cut  با جدا کننده ای که تعریف میکنیم output-delimiter–

فرض کنید که جداکننده یا delimiter در فایلی علامت “|” یا علامت “;”  باشد و بخواهیم هنگامیکه

فیلد های مشخصی از این فایل را با دستور cut حدا کردیم با جداکننده فاصله خالی آنها را نمایش

دهیم در این صورت از گزینه output-delimiter– استفاده میکنیم.

echo  ‘hello;Linux;Mislinux;Academy;Learning’ | cut -d ‘;’ -f 1,3,5  –output-delimiter=’ ‘

در دستور بالا عبارت داخل علامت ‘ ‘ که با علامت ‘;’ جدا شده اند را  با جداکننده فاصله یا ‘ ‘  در خروجی نشان میدهیم

cut --output-delimiter

 

در این مقاله مثال هایی از نحوه استفاده از دستور cut  را مشاهده می کنید برای مشاهده

مثالهای دستور grep  به اینجا مراجعه نمایید .

0 پاسخ

دیدگاه خود را ثبت کنید

تمایل دارید در گفتگوها شرکت کنید؟
در گفتگو ها شرکت کنید.

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *