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

تغییر مسیر خروجی دستور :
برای هدایت خروجی دستور به یک فایل ، باید از عملگر < و به دنبال آن نام فایل استفاده کنیم. اگر فایل وجود نداشته باشد ، فایل جدیدی ایجاد می شود ، در غیر این صورت ، اطلاعات فایل موجود را رونویسی می کند.
برای دیدن محتویات فایلی که تازه ایجاد کردیم ، می توانیم از دستور 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
زكوة العلم نشره(امير المؤمنين)