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

سرور مجازی NVMe

مجموع یک ستون را با استفاده از اسکریپت “Awk” در Bash محاسبه کنید

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


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

مثال های مختلف محاسبه مجموع ستون

دستور “awk” را می توان به روش های مختلف برای محاسبه مجموع یک ستون از یک فایل حاوی داده های عددی استفاده کرد. فایل می تواند یک فایل CSV یا یک فایل متنی باشد. روش های مختلف محاسبه مجموع یک ستون در این قسمت از آموزش نشان داده شده است.

مثال 1: محاسبه مجموع یک ستون با استفاده از دستور ساده “Awk”

یک فایل متنی با نام “courses.txt” با داده های زیر ایجاد کنید. ستون دوم این فایل حاوی داده های عددی است و فایل حاوی داده های عنوان نیست:

CSE202 2.0

CSE407 1.0

CSE305 3.0

ACC101 2.0

یک فایل Bash با اسکریپت زیر ایجاد کنید که نام فایل را از کاربر می گیرد. اگر نام فایل با فایل “courses.txt” مطابقت داشته باشد، مجموع مقادیر ستون دوم از این فایل با استفاده از دستور “awk” محاسبه می شود. دستور “awk” همراه با دستور “cat” در اینجا برای خواندن محتوای ستون دوم فایل “courses.txt” استفاده می شود. سپس مقدار جمع چاپ می شود.

#!/bin/bash
#نام فایل را بگیرید
اکو -n “نام فایل را وارد کنید:”
خواندن نام فایل

#بررسی کنید نام فایل معتبر داده شده باشد یا خیر
اگر [[ $filename != “courses.txt” ]]; سپس

اکو “نام فایل نامعتبر داده شده است.”

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

خروج 0
فی
#مجموع کل ساعت اعتبار را محاسبه کنید
جمع=`گربه $filename | بیخیال ‘{sum+=$2} END {print “کل ساعت اعتبار دوره: ” مجموع}”`
#مقدار محاسبه شده را چاپ کنید
اکو $ مجموع

خروجی زیر مجموع 2.0+1.0+3.0+2.0 را نشان می دهد که 8.0 است:

مجموع یک ستون را با استفاده از اسکریپت "Awk" در Bash محاسبه کنید

مثال 2: محاسبه مجموع یک ستون با استفاده از دستور ساده “Awk” با NR

یک فایل CSV با نام “employees.csv” با داده های زیر ایجاد کنید. ستون سوم این فایل شامل داده های عددی و فایل حاوی داده های عنوان است:

شناسنامه، نام، حقوق
5623مهراب حسین 90000
1355میلا چاودری، 125000
3517جعفر اقبال، 300000
7554ضیاء رحمان 450000
8652، روپا چاکروبارتی، 260000

یک فایل Bash با اسکریپت زیر ایجاد کنید که نام فایل را از command-line بحث و جدل. اگر نام فایل با فایل “employees.csv” مطابقت داشته باشد، مجموع مقادیر ستون سوم به استثنای عنوان این فایل با استفاده از دستور “awk” محاسبه می شود. دستور “awk” در اینجا از مقدار “NR” برای حذف عنوان ستون سوم فایل استفاده می کند. سپس مقدار جمع چاپ می شود.

#!/bin/bash
#بررسی کنید که آیا نام فایل داده شده است یا خیر
اگر [ $# -lt 1 ]; سپس

اکو “برهان وجود ندارد.”

خروج 0
فی
نام فایل=1 دلار
#بررسی کنید که آیا نام فایل معتبر داده شده است یا خیر
اگر [[ $filename != “employees.csv” ]]; سپس

اکو “نام فایل نامعتبر داده شده است.”

خروج 0
فی
#مجموع فیلد حقوق و دستمزد فایل staffs.csv را محاسبه کنید
جمع=`بیخیال -اف “” ‘NR!=1{Total=Total+$3} END{print “مجموع حقوق کارکنان: $” مجموع}” >#مقدار محاسبه شده را چاپ کنید
اکو $ مجموع

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

پیشنهاد می‌کنیم بخوانید:  Set –e در Bash چه می کند؟

مجموع یک ستون را با استفاده از اسکریپت "Awk" در Bash محاسبه کنیدمجموع یک ستون را با استفاده از اسکریپت "Awk" در Bash محاسبه کنید

مثال 3: محاسبه مجموع یک ستون با استفاده از دستور ساده “Awk” با FS

یک فایل متنی با نام sales.txt با داده های زیر ایجاد کنید. “:” در فایل برای جدا کردن ستون و ستون دوم این فایل که حاوی داده های عددی است استفاده می شود. فایل حاوی هیچ داده سرفصل نیست.

جان:60000

فوریه:34000

مارس:120000

آوریل:56000

ممکن است:65000

ژوئن:20000

یک فایل Bash با اسکریپت زیر ایجاد کنید که نام فایل را از کاربر می گیرد. اگر نام فایل با فایل “sales.txt” مطابقت داشته باشد، مجموع مقادیر ستون دوم از این فایل با استفاده از دستور “awk” محاسبه می شود. دستور “awk” با مقدار “FS” در اینجا برای تعریف جداکننده فیلد بین ستون های فایل استفاده می شود. سپس مقدار جمع چاپ می شود.

#!/bin/bash
#نام فایل را بگیرید
اکو -n “نام فایل را وارد کنید:”
خواندن نام فایل

#بررسی کنید که آیا نام فایل معتبر داده شده است یا خیر
اگر [[ $filename != “sales.txt” ]]; سپس

اکو “نام فایل نامعتبر داده شده است.”

خروج 0
دیگر

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

گربه $filename
فی

#کل مبلغ فروش را با استفاده از جداکننده فیلد چاپ کنید
گربه $filename | بیخیال ‘BEGIN{FS=”:”; sum=0} {sum+=$2} END{print “Total sales: $” sum}”

اگر “sales.txt” به عنوان ورودی گرفته شود، خروجی زیر ظاهر می شود:

مجموع یک ستون را با استفاده از اسکریپت "Awk" در Bash محاسبه کنیدمجموع یک ستون را با استفاده از اسکریپت "Awk" در Bash محاسبه کنید

نتیجه

چندین روش برای محاسبه مجموع یک ستون از یک فایل با استفاده از دستور “awk” در این آموزش نشان داده شده است.

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

زمان انتشار: 1402-12-28 19:37:03

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

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

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