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

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

0
350
روش استفاده از دستور cut در خط فرمان لینوکس
روش استفاده از دستور cut در خط فرمان لینوکس

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

این دستور برای کار با داده های محدود شده مانند فایل های CSV مفید می باشد و در این آموزش روش استفاده از دستور cut در خط فرمان لینوکس را توضیح خواهیم داد.

دستور cut یکی از قدیمی ترین کارها در دنیای یونیکس می باشد و اولین کار را به عنوان بخشی از AT&T System III UNIX انجام داد.

شما همچنین می توانید با دستور زیر بررسی نمایید که کدام نسخه دستور cut بر روی کامپیوتر شما نصب شده است.

cut --version

اگر در خروجی GNU coreutils را مشاهده کردید دارای نسخه ایی هستید که ما در این مقاله به توضیح آن خواهیم پرداخت.

همه نسخه های cut دارای برخی از این قابلیت ها هستند، اما نسخه لینوکس دارای پیشرفت هایی است که به آن اضافه شده است.

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

به طور کلی می توان گفت که دستور cut با بایت‌ها، کاراکترها یا فیلدهای محدود کار می‌کند.

برای انتخاب یک بایت از گزینه -b (بایت) استفاده می نماییم که کدام بایت یا بایت ها را می خواهیم.

در این مورد بایت مورد نظر پنج می باشد و ما رشته how-to geek را با یک | از echo به دستور cut ارسال می کنیم.

echo 'how-to geek' | cut -b 5
روش استفاده از دستور cut در خط فرمان لینوکس
روش استفاده از دستور cut در خط فرمان لینوکس

بایت پنجم در آن رشته t است بنابراین دستور cut با چاپ کلمه t در پنجره ترمینال پاسخ می دهد.

همچنین برای تعیین محدوده از خط فاصله استفاده می کنیم و برای استخراج بایت های 5 و 11 دستور زیر را اجرا می کنیم:

echo 'how-to geek' | cut -b 5-11
روش استفاده از دستور cut در خط فرمان لینوکس
روش استفاده از دستور cut در خط فرمان لینوکس

شما می توانید با جدا کردن آنها با کاما چندین بایت یا محدوده را ارائه دهید. برای استخراج بایت 5 و بایت 11 می توان از دستور زیر استفاده نمود:

echo 'how-to geek' | cut -b 5,11
روش استفاده از دستور cut در خط فرمان لینوکس
روش استفاده از دستور cut در خط فرمان لینوکس

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

echo 'how-to geek' | cut -b 1,5,8
روش استفاده از دستور cut در خط فرمان لینوکس
روش استفاده از دستور cut در خط فرمان لینوکس

اگر از خط فاصله بدون شماره اول استفاده نمایید دستور cut همه چیز را از موقعیت 1 تا عدد برمی گرداند.

اگر از خط فاصله بدون عدد دوم استفاده نمایید دستور cut همه چیز را از شماره اول تا انتهای جریان یا خط برمی گرداند.

echo 'how-to geek' | cut -b -6
echo 'how-to geek' | cut -b 8-
روش استفاده از دستور cut در خط فرمان لینوکس
روش استفاده از دستور cut در خط فرمان لینوکس

استفاده از دستور cut در کاراکتر Characters

استفاده از دستور cut با کاراکترها تقریباً مشابه استفاده از آن با بایت ها می باشد.

در هر دو مورد باید مراقب شخصیت های پیچیده بود و با استفاده از گزینه -c (کاراکتر) دستور cut از نظر کاراکتر کار می کند.

echo 'how-to geek' | cut -c 1,5,8
echo 'how-to geek' | cut -c 8-11
استفاده از دستور cut در کاراکتر Characters
استفاده از دستور cut در کاراکتر Characters

این یک کلمه شش حرفی است بنابراین درخواست cut برای برگرداندن کاراکترها از یک به شش باید کل کلمه را برگرداند.

اما اینطور نیست و یک کاراکتر کوتاه است برای دیدن کل کلمه باید شخصیت های یک تا هفت را بخواهیم.

echo 'piñata' | cut -c 1-6
echo 'piñata' | cut -c 1-7
استفاده از دستور cut در کاراکتر Characters
استفاده از دستور cut در کاراکتر Characters

مسئله این است که کاراکتر ñ در واقع از دو بایت تشکیل شده است و ما می توانیم این را به راحتی ببینیم.

ما یک فایل متنی کوتاه داریم که حاوی این خط متن است:

cat unicode.txt
استفاده از دستور cut در کاراکتر Characters
استفاده از دستور cut در کاراکتر Characters

ما آن فایل را با ابزار hexdump بررسی می کنیم. با استفاده از گزینه -C جدولی از ارقام هگزا دسیمال با معادل ASCII در سمت راست به ما نمایش می دهد.

در جدول ASCII کلمه ñ نشان داده نشده است ولی در عوض نقطه هایی وجود دارد که نشان دهنده دو کاراکتر غیر قابل چاپ هستند.

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

hexdump -C unicode.txt
استفاده از دستور cut در کاراکتر Characters
استفاده از دستور cut در کاراکتر Characters

این دو بایت توسط برنامه نمایشگر در این مورد، پوسته Bash برای شناسایی “ñ” استفاده می شود.

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

اگر کاراکتر 3 یا 4 را بخواهیم آیکن یک کاراکتر غیرچاپی نشان داده می‌شود و اگر بایت های 3 و 4 را بخواهیم، پوسته آنها را به عنوان ñ تفسیر می کند.

echo 'piñata' | cut -c 3
echo 'piñata' | cut -c 4
echo 'piñata' | cut -c 3-4
استفاده از دستور cut در کاراکتر Characters
استفاده از دستور cut در کاراکتر Characters

ارسال نظر و دیدگاه

لطفا نظر خود را وارد کنید
لطفا نام خود را اینجا وارد کنید