نحوه نمایش کاراکترهای قابل چاپ فایل با فرمان رشته ها

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

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

هدف اصلی استفاده از دستور "string" این است که چه نوع فایل مورد نظر شما را دنبال می کند اما شما می توانید از آن برای استخراج متن استفاده کنید. به عنوان مثال، اگر شما یک فایل از یک برنامه اختصاصی که فایل را در فرمت دودویی عجیب و غریب ذخیره می کنید، می توانید از "رشته ها" برای استخراج متن که در فایل قرار داده اید استفاده کنید.

مثال استفاده از فرمان رشته ها

یک راه عالی برای نشان دادن قدرت رشته ها، ایجاد یک سند با استفاده از LibreOffice Writer است.

به سادگی LibreOffice Writer را باز کنید و متن را وارد کنید و سپس آن را در فرمت استاندارد ODT ذخیره کنید .

حالا یک پنجره ترمینال را باز کنید (CTRL، ALT و T را همزمان فشار دهید) و سپس از دستور cat برای نمایش فایل به صورت زیر استفاده کنید:

گربه yourfilename.odt | بیشتر

(نام فایل شما با نام yourfilename.odt را جایگزین کنید)

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

فاصله ای را فشار دهید تا از طریق پرونده حرکت کنید. به طور متناوب در طول پرونده، برخی از متنهایی را وارد کرده اید.

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

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

رشته yourfilename.odt | بیشتر

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

با این وجود، آنچه که شما قادر به مشاهده آن خواهید بود کلید اصلی است:

mimetypeapplication / vnd.oasis.opendocument.text

ما می دانیم که نوع فایل یک پرونده ODT LibreOffice Writer به دو دلیل است:

  1. ما فایل را ایجاد کردیم
  2. افزونه: .ODT است

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

بازیابی ویندوز اغلب فایل هایی با نام هایی مانند 0001، 0002، 0003 و غیره را بازیابی می کند. واقعیت این است که فایل ها بازیابی شده اند اما تلاش می کنند تا نوع فایل های آن کابوس را تشخیص دهند.

با استفاده از رشته ها، شانس مبارزه برای کار کردن نوع فایل را دارید. دانستن اینکه یک پرونده یک فایل opendocument.text می باشد، می توانید آن را با فرمت ODT ذخیره کنید و آن را در برنامه LibreOffice باز کنید.

در صورت عدم اطلاع از یک فایل ODT اساسا یک فایل فشرده است. اگر نام شما yourfilename.odt را به نام yourfilename.zip تغییر نام دهید، می توانید آن را در یک ابزار آرشیو باز کنید و حتی فایل را باز کنید.

رفتارهای جایگزین

به طور پیش فرض دستور رشته تمام رشته ها را در یک فایل باز می کند، اما شما می توانید رفتار را تغییر دهید به طوری که رشته ها را از قسمت داده های بارگذاری شده در یک فایل باز گرداند.

این دقیقا به چه معنی است؟ به نظر می رسد هیچ کس نمی داند

این منطقی است که فرض کنیم که از رشته ها استفاده می کنید و یا می توانید نوع فایل را پیدا کنید یا متن مورد نظر را در یک فایل جستجو کنید.

اگر هنگام اجرای فرمان رشته ها با استفاده از رفتار پیش فرض شما خروجی را امیدوار نکنید، آنگاه سعی کنید یکی از دستورات زیر را اجرا کنید تا ببینید آیا تغییری ایجاد می کند:

رشته ها - d yourfilename

رشته ها - data yourfilename

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

فرمان "رشته ها" می تواند برای کار بر روی معکوس تنظیم شود تا کلید minus d رفتار پیش فرض باشد. اگر این مورد در سیستم شما باشد، می توانید تمام داده ها را با استفاده از دستور زیر باز کنید:

رشته ها - yourfilename

خروجی فرمت

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

برای انجام این کار یکی از دستورات زیر را اجرا کنید:

رشته ها -f yourfilename

رشته ها - print-file-name yourfilename

خروجی اکنون چیزی شبیه به این خواهد داشت:

yourfilename: قطعه ای از متن

yourfilename: قطعه ای دیگر از متن

به عنوان بخشی از خروجی شما همچنین می توانید افست جایی که متن در یک فایل ظاهر می شود. برای انجام این کار دستور زیر را اجرا کنید:

رشته ها -o yourfilename

خروجی چیزی شبیه به این خواهد بود:

16573 شما

متن 17024

جبران خسارت در واقع جبران خسارت هشتم است، گرچه بسته به اینکه چگونه رشته ها برای سیستم شما کامپایل شده اند، می توان به آسانی نیز شبیه سازی شده یا جبران کننده اعشاری بود.

روش دقیق تر گرفتن افست که می خواهید این است که از دستورات زیر استفاده کنید:

رشته -td yourfilename

رشته ها - به yourfilename

رشته ها - yourfilename

معادله t معنی بازگشت افست و شخصیتی است که به دنبال نوع نوع افست است. (یعنی d = دهدهی، o = هشت، h = hex).

به طور پیش فرض دستور رشته هر رشته جدید را در یک خط جدید چاپ می کند، اما شما می توانید تعریف کننده انتخاب خود را تنظیم کنید. به عنوان مثال برای استفاده از نماد لوله ("|") به عنوان delimiter دستور زیر را اجرا کنید:

رشته ها -s "|" نام کاربری شما

محدودیت رشته را تنظیم کنید

رشته دستور به طور پیش فرض به دنبال یک رشته از 4 کاراکتر قابل چاپ در یک ردیف است. شما می توانید پیش فرض را تنظیم کنید به طوری که فقط رشته را با 8 کاراکتر قابل چاپ یا 12 کاراکتر قابل چاپ بازگردانید.

با تنظیم این محدودیت می توانید خروجی را خنثی کنید تا بهترین نتیجه ممکن را بدست آورید. با دنبال کردن یک رشته ای که بیش از حد طول می کشد، خطر رد کردن متن مفید است، اما با ایجاد آن خیلی کوتاه، شما ممکن است در نهایت با ناخوشایند بیشتر روبرو شوید.

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

رشته ها -n 8 نام کاربری شما

در مثال فوق، محدودیت را به 8 تغییر دادم

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

همچنین می توانید از دستور زیر برای انجام یک کار استفاده کنید:

رشته ها - bytes = 8 نام کاربری شما

شامل فضای خالی

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

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

برای دریافت رشته ها برای تشخیص خطوط خط جدید و بازده چرخدنده به عنوان یک کاراکتر قابل چاپ، رشته ها را به صورت زیر اجرا می کند:

رشته ها - w yourfilename

رمزگذاری را تغییر دهید

5 گزینه رمزگذاری موجود برای استفاده با رشته وجود دارد:

پیش فرض 7 بایت باتیم است.

برای تغییر کدگذاری، دستور زیر را اجرا کنید:

رشته ها - به نام yourfilename

رشته ها --encoding = s yourfilename

در فرمان بالا، پیش فرض «s» را مشخص کردم که به معنی 7 بایت بات است. به سادگی با علامت رمزگذاری انتخاب خود، "s" را جایگزین کنید.

تغییر نام فایل دودویی

شما می توانید رفتار رشته ها را تغییر دهید به طوری که از یک کتابخانه توصیفگر فایل های باینری متفاوت از آنچه که برای سیستم شما ارائه شده استفاده می شود.

این سوئیچ یکی برای کارشناسان است. اگر شما یک کتابخانه دیگر برای استفاده دارید، می توانید این کار را با اجرای دستور زیر انجام دهید:

رشته ها - T bfdname

گزینه های خواندن از یک فایل

اگر قصد استفاده از گزینه های مشابه در هر زمان و سپس شما نمی خواهید به مشخص کردن تمام سوئیچ ها هر بار که شما اجرای دستور، زیرا زمان نیاز دارد.

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

برای امتحان این در داخل ترمینال، دستور زیر را اجرا کنید:

nano stringsopts

در متن فایل زیر را وارد کنید:

-f -o -n 3 -s "|"

فایل را با فشار دادن CTRL و O ذخیره کنید و با فشار دادن CTRL و X خروج کنید.

برای اجرای دستورات رشته با این گزینه دستور زیر را اجرا کنید:

رشته هاstringsopts yourfilename

گزینه ها از stringsopts فایل خوانده می شود و قبل از هر رشته، offset و "|" باید نام فایل را ببینید. به عنوان یک جداساز

کمک گرفتن

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

رشته ها - کمک

همچنین می توانید صفحه راهنمای کتاب را بخوانید:

مرد رشته ها

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

برای پیدا کردن نسخه رشته هایی که در حال اجرا هستید، یکی از دستورات زیر را اجرا کنید:

رشته ها -v

رشته ها -V

رشته ها - نسخه