وبلاگ رسانگار
با ما حرفه ای باشید

سرور مجازی NVMe

آرایه چاپ Bash با خطوط جدید

0 3
زمان لازم برای مطالعه: 5 دقیقه


[*][*]یک آرایه یک است container حاوی آیتم های نوع داده یکسان، از نوع عدد صحیح یا نوع شناور. با انجام چندین عملیات می توانیم با آرایه ها مقابله کنیم روی آنها یکی از رایج ترین دلیما، شکستن آرایه و چاپ هر کلمه است روی یک خط جدید این ویژگی در مقاله امروز مورد بحث قرار گرفته است. برای درک این مفهوم، باید به یک اوبونتو دسترسی داشته باشید terminal برای اجرا bash-اصطلاحات مرتبط روی اوبونتو ما موضوع را از ساده ترین تا نمونه های حیاتی برای درک کاربر پوشش داده ایم.

مثال 1

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

اس آ= “من دانشجو هستم. من برنامه نویسی را دوست دارم”[*]
[*]

$ arr=( ${a} )[*]
[*]

$ اکو “آر دارد ${#arr[@]} عناصر.”

خواهید دید که مقدار حاصل پیامی را با شماره عناصر نمایش داده است. جایی که علامت “#” فقط برای شمارش تعداد کلمات موجود استفاده می شود. [@] شماره شاخص عناصر رشته را نشان می دهد. و علامت “$” برای متغیر است.

آرایه چاپ Bash با خطوط جدید

برای چاپ هر کلمه روی یک خط جدید، باید از کلیدهای “%s’\n” استفاده کنیم. ‘%s’ برای خواندن رشته تا انتها است. در همان زمان، ‘\n’ کلمات را به خط بعدی منتقل می کند. برای نمایش محتوای آرایه، از علامت “#” استفاده نمی کنیم. زیرا فقط تعداد کل عناصر موجود را می آورد.

$ printf “‘%s’\n” “${arr[@]}

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

مثال 2

معمولاً یک رشته با استفاده از زبانه ها و فاصله ها به یک آرایه یا کلمات تک شکسته می شود، اما این معمولاً منجر به شکست های زیادی می شود. ما در اینجا از روش دیگری استفاده کرده ایم که استفاده از IFS است. این محیط IFS با نشان دادن چگونگی شکستن یک رشته و تبدیل آن به آرایه های کوچک سروکار دارد. IFS دارای مقدار پیش‌فرض \n\t است. این بدان معنی است که فاصله، یک خط جدید و یک تب می توانند مقدار را به خط بعدی منتقل کنند.

در نمونه فعلی، از مقدار پیش فرض IFS استفاده نمی کنیم. اما در عوض، آن را با یک کاراکتر از خط جدید جایگزین می کنیم، IFS=$’\n’. بنابراین اگر از فاصله و تب استفاده کنید، باعث شکستن رشته نمی شود.

پیشنهاد می‌کنیم بخوانید:  چگونه با استفاده از `sed` یک خط را بعد از مسابقه وارد کنیم؟

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

$ خ=” من دانشجو هستم [*]
[*]

من برنامه نویسی را دوست دارم[*]
[*]

زبان مورد علاقه من دات نت است.”[*]
[*]

$ اکو $str

حالا نوبت استفاده از IFS در دستور با کاراکتر newline است. در همان زمان، مقادیر متغیر را به آرایه اختصاص دهید. پس از اعلام این موضوع، پرینت بگیرید.

$ IFS=$’\n’ arr=( ${str} )[*]
[*]

$ printf%s\n” “${arr[@]}

آرایه چاپ Bash با خطوط جدیدآرایه چاپ Bash با خطوط جدید

می توانید نتیجه را ببینید. این نشان می دهد که هر رشته به صورت جداگانه نمایش داده می شود روی یک خط جدید در اینجا کل رشته به عنوان یک کلمه واحد در نظر گرفته می شود.

یک نکته در اینجا قابل ذکر است: پس از پایان فرمان، تنظیمات پیش فرض IFS دوباره برگردانده می شود.

مثال 3

همچنین می توانیم مقادیر آرایه نمایش داده شده را محدود کنیم روی هر خط جدید یک رشته بردارید و آن را در متغیر قرار دهید. حالا آن را تبدیل کنید یا در آرایه ذخیره کنید، همانطور که در مثال های قبلی انجام دادیم. و به سادگی با همان روشی که قبلاً توضیح داده شد، چاپ کنید.

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

$ ایکس=( نام=”احمد علی اما”. من دوست دارم خواندن. “مورد علاقه موضوع=زیست شناسی)[*]
[*]

$ arr=( ${x} )[*]
[*]

$ printf%s\n” “${arr[@]}

آرایه چاپ Bash با خطوط جدیدآرایه چاپ Bash با خطوط جدید

همانطور که نقطه بعد از “Butt” است، شکستن آرایه در اینجا متوقف می شود. “من” بدون هیچ فاصله ای بین نقطه نوشته شده است، بنابراین از نقطه جدا می شود.

مثال دیگری از مفهوم مشابه را در نظر بگیرید. بنابراین کلمه بعدی بعد از نقطه نمایش داده نمی شود. بنابراین می توانید ببینید که در نتیجه فقط اولین کلمه نمایش داده می شود.

$ ایکس=(نام=”شوا”. “موضوع مورد علاقه”=”انگلیسی”)

آرایه چاپ Bash با خطوط جدیدآرایه چاپ Bash با خطوط جدید

مثال 4

در اینجا ما دو رشته داریم. هر کدام 3 عنصر در داخل پرانتز وجود دارد.

$ آرایه 1=(سیب هلو موز)[*]
[*]

$ آرایه 2=(گیلاس پرتقال انبه)

سپس باید محتویات هر دو رشته را نمایش دهیم. یک تابع را اعلام کنید. در اینجا از کلمه کلیدی “typeset” استفاده کردیم و سپس یک آرایه را به یک متغیر و آرایه های دیگر را به متغیر دیگری اختصاص دادیم. اکنون می توانیم هر دو آرایه را به ترتیب چاپ کنیم.

دلار a() {[*]
[*]

پیشنهاد می‌کنیم بخوانید:  فرمان Bash یافت نشد، دلایل و راه حل های رایج

Typeset –n دسته اول=1 دلار آرایه ثانویه=2 دلار[*]
[*]

Printf’%s\n’ 1st:${firstarray[@]}”[*]
[*]

Printf’%s\n’ دوم:${secondarray[@]}}

آرایه چاپ Bash با خطوط جدیدآرایه چاپ Bash با خطوط جدید

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

$ یک آرایه 1 آرایه 2

آرایه چاپ Bash با خطوط جدیدآرایه چاپ Bash با خطوط جدید

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

مثال 5

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

$ آرایه=(لینوکس یونیکس Postgresql)[*]
[*]

$ اکو ${آرایه[*]} | tr “” “\n”

آرایه چاپ Bash با خطوط جدیدآرایه چاپ Bash با خطوط جدید

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

مثال 6

همانطور که قبلاً می دانیم، کار کردن “\n” در هر دستور، کل کلمات بعد از آن را به خط بعدی منتقل می کند. در اینجا یک مثال ساده برای توضیح بیشتر آورده شده است روی این مفهوم اساسی هرگاه از “\” با “n” در هر جایی از جمله استفاده کنیم، به خط بعدی منتهی می شود.

$ printf%b\n” “هر چیزی که می درخشد طلا نیست”

آرایه چاپ Bash با خطوط جدیدآرایه چاپ Bash با خطوط جدید

بنابراین جمله نصف می شود و به سطر بعدی منتقل می شود. با حرکت به سمت مثال بعدی، “%b\n” جایگزین می شود. در اینجا یک ثابت “-e” نیز در دستور استفاده می شود.

$ اکو –e “سلام دنیا! من اینجا تازه وارد هستم”

آرایه چاپ Bash با خطوط جدیدآرایه چاپ Bash با خطوط جدید

بنابراین کلمات بعد از “\n” به خط بعدی منتقل می شوند.

مثال 7

ما از الف استفاده کرده ایم bash اینجا فایل کنید این یک برنامه ساده است. هدف نشان دادن روش چاپ مورد استفاده در اینجا است. این یک “حلقه For” است. هر زمان که یک آرایه را از طریق یک حلقه چاپ کنیم، این نیز منجر به شکسته شدن آرایه در کلمات جداگانه می شود. روی خطوط جدید

برای کلمه که در $a[*]
[*]

انجام دادن[*]
[*]

اکو کلمه $[*]
[*]
انجام شده

آرایه چاپ Bash با خطوط جدیدآرایه چاپ Bash با خطوط جدید

حالا از دستور یک فایل پرینت می گیریم.

آرایه چاپ Bash با خطوط جدیدآرایه چاپ Bash با خطوط جدید

نتیجه

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

[*]

برای نگارش بخشهایی از این متن ممکن است از ترجمه ماشینی یا هوش مصنوعی GPT استفاده شده باشد [*]
لطفا در صورت وجود مشکل در متن یا مفهوم نبودن توضیحات، از طریق دکمه گزارش نوشتار یا درج نظر روی این مطلب ما را از جزییات مشکل مشاهده شده مطلع کنید تا به آن رسیدگی کنیم

[*]زمان انتشار: 1402-12-30 15:39:03

امتیاز شما به این مطلب
دیدگاه شما در خصوص مطلب چیست ؟

آدرس ایمیل شما منتشر نخواهد شد.

لطفا دیدگاه خود را با احترام به دیدگاه های دیگران و با توجه به محتوای مطلب درج کنید