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

سرور مجازی NVMe

فایل CSV را در Bash بخوانید

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


شکل کامل CSV مقدار جدا شده با کاما است. فایل CSV توسط کدگذار برای اهداف زیادی استفاده می شود که داده ها را در قالب جدولی نیمه ساختاری ذخیره می کند. هر خط از فایل به عنوان یک ردیف از جدول در نظر گرفته می شود و هر قسمت از ردیف با یک کاما (،) در فایل CSV از هم جدا می شود. راه های زیادی در Bash برای خواندن فایل های CSV وجود دارد که در این آموزش توضیح داده شده است.

پیش نیازها:

قبل از تمرین مثال این آموزش باید یک فایل CSV ایجاد کنید. یک فایل CSV به نام “customers.csv” با محتوای زیر ایجاد کنید تا خروجی اسکریپت مورد استفاده در این آموزش را بررسی کنید. در این فایل 3rd زمینه های 4هفتم خط و 6هفتم خط خالی هستند

شناسه، نام، ایمیل، آدرس، موبایل

101، جعفر اقبال، جعفر@gmail.com، 9/داکا دانموندی، +8801762341425

102، کمال حسین، کمال@gmail.com، 120 میرپور داکا، +8801988675345

103نیروب چاودری،،33/2 جیگاتولا داکا، +8801754532312

104فرهین حسن , فرحین@gmail.com<آ href=“جای خالی”>،آ> 10 کادالباگون داکا، +8801512875634

105، دکتر رحیم ، 2/B Dhanmondi داکا، +8801700453423

روش های مختلف برای خواندن فایل CSV در Bash

فایل CSV را می توان به روش های مختلف با استفاده از اسکریپت Bash تجزیه کرد. روش های مختلف برای خواندن فایل “customers.csv” در این قسمت از آموزش نشان داده شده است.

پیشنهاد می‌کنیم بخوانید:  روش استفاده از کلاس های کاراکتر sed

مثال 1: محتوای اصلی فایل CSV را بخوانید

یک فایل Bash با اسکریپت زیر ایجاد کنید که محتوای کامل فایل “customers.csv” را با استفاده از حلقه “while” بخواند:

#!/bin/bash

#نام فایل را تنظیم کنید

نام فایل=“customers.csv”

#هر خط از فایل را در هر تکرار بخوانید

در حالی که خواندن داده ها

انجام دادن

#خط را چاپ کنید

اکو داده $

انجام شده < $filename

پس از اجرای اسکریپت خروجی زیر ظاهر می شود:

فایل CSV را در Bash بخوانید

مثال 2: فایل CSV را با حروف بزرگ کردن هدر بخوانید

خط اول فایل “customers.csv” حاوی عنوان فایل است. یک فایل Bash با اسکریپت زیر ایجاد کنید که محتوای فایل “customers.csv” را پس از بزرگ کردن خط اول فایل چاپ می کند. دستور “awk” در اسکریپت برای چاپ محتوای فایل پس از بزرگ کردن هدر استفاده می شود. کاما(،) در مقادیر FS و OFS در اسکریپت برای خواندن فایل “customers.csv” و نوشتن فایل “updatedcustomers.csv” اختصاص داده می شود. دستور “cat” برای چاپ محتوای هر دو فایل استفاده می شود.

printf “فایل اصلی:\n

#محتوای اصلی فایل CSV را چاپ کنید

گربه cstomers.csv

#پس از بزرگ کردن هدر یک فایل CSV جدید ایجاد کنید

بیخیال ‘BEGIN{FS=”,”;OFS=”,”}

{

اگر (NR==1)

تاپر چاپ (0$)

دیگر

چاپ

}’ customers.csv > updatedcustomers.csv

printf \nفایل اصلاح شده:\n

#پرینت فایل CSV جدید

گربه updatedcustomers.csv

پس از اجرای اسکریپت خروجی زیر ظاهر می شود:

فایل CSV را در Bash بخوانیدفایل CSV را در Bash بخوانید

مثال 3: فیلد خالی فایل CSV را با “هیچ” جایگزین کنید

یک فایل Bash با اسکریپت زیر ایجاد کنید که محتوای فایل “customers.csv” را پس از تغییر فیلد خالی با مقدار “None” چاپ می کند. دو فیلد در این فایل خالی است که در ادامه به آنها اشاره شده است. دستور awk در اسکریپت برای چاپ محتوای فایل پس از اصلاح فیلدهای خالی استفاده می شود. کاما(،) در مقادیر FS و OFS در اسکریپت برای خواندن فایل “customers.csv” و نوشتن فایل “updatedcustomers.csv” اختصاص داده می شود. دستور “cat” برای چاپ محتوای هر دو فایل در قالب جدول استفاده می شود.

printf “فایل اصلی:\n

پیشنهاد می‌کنیم بخوانید:  چگونه می توان یک متغیر را در یک فایل با استفاده از sed جایگزین کرد؟

#محتوای اصلی فایل CSV را به صورت جدولی چاپ کنید

گربه customers.csv | ستون ها، -t

بیخیال ‘BEGIN{FS=”,”;OFS=”,”}

{

for(field=1;field<=NF;field++) { if($field == “”) $field=”هیچکدام” } چاپ }’ customers.csv > modifiedcustomers2.csv

printf \nفایل اصلاح شده:\n

#فایل CSV جدید را به صورت جدولی چاپ کنید

گربه modifiedcustomers2.csv | ستون ها، -t

پس از اجرای اسکریپت خروجی زیر ظاهر می شود:

فایل CSV را در Bash بخوانیدفایل CSV را در Bash بخوانید

مثال 4: تعداد کل ردیف ها و ستون های فایل CSV را چاپ کنید

یک فایل Bash با اسکریپت زیر ایجاد کنید که تعداد کل ردیف ها و ستون ها را در فایل “customers.csv” می شمارد. متغیر NR برای چاپ تعداد کل ردیف های فایل استفاده می شود. متغیر NF برای چاپ تعداد کل فیلدهای فایل استفاده می شود.

printf “فایل اصلی:\n

#محتوای اصلی فایل CSV را چاپ کنید

گربه customers.csv

اکو

اکو -n “مجموع ردیف ها:”

بیخیال -اف، “END{print NR}” customers.csv

اکو -n “کل ستون ها:”

بیخیال -اف، “END{print NF}” customers.csv

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

فایل CSV را در Bash بخوانیدفایل CSV را در Bash بخوانید

نتیجه

روش های خواندن فایل CSV، اصلاح فایل CSV و شمارش ردیف ها و ستون های فایل CSV با استفاده از اسکریپت Bash در این آموزش نشان داده شده است.

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

زمان انتشار: 1402-12-28 17:36:04

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

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

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