تا %60 تخفیف خرید برای 2 نفر با صدور مدرک فقط تا
00 00 00

آموزش لینوکس(Linux Essentials)جلسه 10:جستجو واستخراج کردن اطلاعات

هادی صارمی
هادی صارمی
0 پسند
23 بازدید
0 نظر
14 روز قبل

تغییر مسیر خروجی دستور :

برای هدایت خروجی دستور به یک فایل ، باید از عملگر < و به دنبال آن نام فایل استفاده کنیم. اگر فایل وجود نداشته باشد ، فایل جدیدی ایجاد می شود ، در غیر این صورت ، اطلاعات فایل موجود را رونویسی می کند.

برای دیدن محتویات فایلی که تازه ایجاد کردیم ، می توانیم از دستور cat استفاده کنیم. به طور پیش فرض ، این دستور محتویات یک فایل را بر روی صفحه نمایش می دهد. 

مثال :

$ echo "Hello World!" > text
$ cat text
Hello World!

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

$ echo "Hello!" > text
$ cat text
Hello!

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

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

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

$ echo "Hello to you too!" >> text
$ cat text
Hello!
Hello to you too!

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

$ echo "Hello to you too!" >> text2
$ cat text2
Hello to you too!

گرفتن خروجی از خطا های دریافتی

برای دریافت پیام های خطا ، کاربر باید از عملگر 2> و به دنبال آن نام فایل ای که خطاها در آن قرار است نوشته شود بیاورید. اگر فایل وجود نداشته باشد ، فایل جدیدی همراه محتویات خطا داده شده ایجاد می شود ، در غیر این صورت فایل دوباره رونویسی می شود.

به عنوان مثال ، دستور زیر یک فایل یا دایرکتوری را به نام tosinso جستجو می کند و هنگام نمایش خروجی روی صفحه ، فقط خطا را در فایل text-error می نویسد:

$ find /usr tosinso 2> text-error
/usr
/usr/share
/usr/share/misc
---------Omitted output----------
/usr/lib/libmagic.so.1.0.0
/usr/lib/libdns.so.81
/usr/tosinso
$ cat text-error
find: `tosinso': No such file or directory

در مثال بالا فایل tosinso را پیدا نخواهد کرد بنابراین پیغام خطا را در فایل text-error می نویسد. 

دستور زیر بدون خطا اجرا می شود ، بنابراین هیچ اطلاعاتی در فایل text-error نوشته نمی شود:

$ ls /home 2> text-error
$ cat text-error

همچنین می تواند به یک فایل با عملگر 2 << اضافه شود. با این کار خطای جدید در انتهای فایل اضافه می شود.

$ sort /etc 2>> text-error
$ cat text-error
sort: read failed: /etc: Is a directory
$ sort /etc/shadow 2>> text-error2
$ cat text-error2
sort: open failed: /etc/shadow: Permission denied

نتیجه دو دستور بالا را شما می توانید بررسی نمائید و در پایین مقاله مشکلات را برطرف نمائیم.

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

این نوع دادن ورودی برای وارد کردن داده ها به یک دستور ، از یک فایل مشخص به جای صفحه کلید ، استفاده می شود. در این حالت از عملگر > همانطور که در مثال نشان داده شده است استفاده می شود:

$ cat < text
Hello!
Hello to you too!

دستور tr :

دستور tr در linux یک ابزار خط فرمان برای ترجمه یا حذف کاراکترها است. این برنامه از طیف وسیعی از تغییرات از بزرگ به کوچک ، فشردن کاراکترهای تکراری ، حذف کاراکترهای خاص و پیدا کردن و جایگزینی پشتیبانی می کند.  tr مخفف translate است.

$ tr -d "l" < text
Heo!
Heo to you too!

در مثال بالا دستور tr با استفاده از آپشن d- آورده شده است عمل حذف کاراکتر را می توان انجام داد که در این دستور هر کجایی از فایل text که کاراکتر l آمده باشد را حذف می کند.

دستور cut :

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

$ cat state.txt
Andhra Pradesh
Arunachal Pradesh
Assam
Bihar
Chhattisgarh

نمونه فایل بالا را در نظر بگیرید که نام کشور و پایتخت می باشد.

با استفاده از آپشن b- برای خارج کردن بایت های خاصی از متن استفاده می شود.

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

$ cut -b 1,2,3 state.txt
And
Aru
Ass
Bih
Chh

در این دستور گفته شده است که بایت های 1 2 3 هر خط را جدا نماید که اگر به فایل کاملی state.txt مراجعه کنید خواهید دید که سه کاراکتر اول در خروجی نمایش داده شده است.

$ cut -b 1-3,5-7 state.txt
Andra
Aruach
Assm
Bihr
Chhtti

 با استفاده از عملگر - می توانید رنجی از بایت هارا انتخاب نمائید.در مثال بالا 1-3 کاراکتر های 1 2 3 هر خط و 5 6 7 هر خط چاپ می شود.

پایپ Pipes (|) :

به صورت خلاصه اگر بخواهیم بگوییم با استفاده از | pipes شما می توانید خروجی دستور اول را ورودی دستور دوم خود قرار دهید

برای درک بهتر به مثال زیر توجه کنید :

$ echo "Wellcom to Tosinso" | touch Wellcom 
$ cat Wellcom
Wellcom to Tosinso

همانطور که مشاهده میکنید باید دستور echo متن روبه روی خودش را چاپ کند اما با عملگر | خروجی دستور اول ورودی دستور touch می شود که در اینجا یک فایل Wellcom ایجاد می شود که محتوای Weelcom to Tosinso را که خروجی دستور اول می باشد را نمایش می دهد.

دستور Less :

دستور Less ابزار لینوکس است که می تواند برای هر بار مطالعه محتوای فایل متنی یک صفحه ،یک صفحه استفاده شود. دسترسی سریع تری دارد زیرا اگر فایل بزرگ باشد ، به فایل کامل دسترسی پیدا نمی کند ، اما صفحه به صفحه به آن دسترسی پیدا می کند.

به عنوان مثال ، اگر این یک فایل بزرگ است و شما با استفاده از هر ویرایشگر متنی آن را می خوانید ، پرونده کامل در حافظه اصلی بارگیری می شود ، اما با دستور less کل فایل بارگیری نمی شود ، بلکه آن را قسمت به قسمت بارگیری می کنید ، که باعث سریعتر شدن آن می شود.

dmesg | less

به عنوان مثال فایل dmesg یک فایل بزرگی می باشد که با دستور less محتوای آن در صفحه جدید نمایش داده می شود و می توانید در صفحه های آن پیمایش نمائید .

دستورات head و tail :

دستور head ، همانطور که از نامش پیداست ، تعداد N خط از داده های ورودی داده شده را چاپ می کند. به طور پیش فرض ، 10 خط اول فایل های مشخص شده را چاپ می کند. 

$ cat state.txt
Andhra Pradesh
Arunachal Pradesh
Assam
Bihar
Chhattisgarh
Goa
Gujarat
Haryana
Himachal Pradesh
Jammu and Kashmir
Jharkhand
Karnataka
Kerala
Madhya Pradesh
Maharashtra
Manipur
Meghalaya
Mizoram
Nagaland
Odisha
Punjab
Rajasthan
Sikkim
Tamil Nadu
Telangana
Tripura
Uttar Pradesh
Uttarakhand
West Bengal
$ head state.txt
Andhra Pradesh
Arunachal Pradesh
Assam
Bihar
Chhattisgarh
Goa
Gujarat
Haryana
Himachal Pradesh
Jammu and Kashmir

همانطور که مشاهده میکنید دستور head بدون آپشن 10 خط ابتدای فایل state.txt را نمایش داده است.

با استفاده از آپشن n- می توانید تعداد خط را زیاد یا کم نمائید.

دستور tail :

همانطور که از نام آن مشخص است ، آخرین تعداد N داده ورودی فایل را چاپ می کند. به طور پیش فرض 10 خط آخر فایل های مشخص شده را چاپ می کند.

$ tail state.txt
Odisha
Punjab
Rajasthan
Sikkim
Tamil Nadu
Telangana
Tripura
Uttar Pradesh
Uttarakhand
West Bengal

 

زكوة العلم نشره(امير المؤمنين)

نظر شما
برای ارسال نظر باید وارد شوید.
0 نظر

هیچ نظری ارسال نشده است! اولین نظر برای این مطلب را شما ارسال کنید...