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

سرور مجازی NVMe

روش استفاده از xargs روی لینوکس

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


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

xargs چگونه کار می کند:

فرمتی که در آن از دستور xargs استفاده می کنید این است:

$ فرمان 1 | xargs فرمان 2

شما همچنین می توانید رفتار xargs را با برخی از گزینه ها تغییر دهید. در این صورت فرمت دستور xargs به صورت زیر خواهد بود:

$ فرمان 1 | xargs [options] فرمان 2

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

به عنوان مثال، فرض کنید، خروجی از فرمان 1 به شرح زیر است:

value1 value2 value3

بیایید بگوییم، شخصیت جداکننده است فضا. در حال حاضر، خروجی از فرمان 1 به 3 آرگومان تقسیم می شود، ارزش 1، ارزش 2، و ارزش 3.

اکنون xargs دستور را اجرا می کند فرمان 2 برای هر یک از 3 آرگومان یک بار.

$ command2 value1
$ command2 value2
$ command2 value3

اینجا، ارزش 1، ارزش 2، و ارزش 3 آرگومان هایی هستند که توسط xargs از خروجی فرمان تجزیه می شوند فرمان 1.

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

به طور پیش فرض، جداکننده xargs کاراکتر newline/space است. اما می توانید کاراکتر جداکننده را با علامت تغییر دهید یا -حائل، جداکننده گزینه xargs

به طور پیش فرض، xargs با یک آرگومان در یک زمان کار می کند. اگر می خواهید دستور را اجرا کنید فرمان 2 با چندین آرگومان از خروجی دستور فرمان 1، سپس می توانید از -n یا -max-args گزینه xargs گاهی اوقات، باید به xargs بگویید که هر بار با یک آرگومان کار کند -n یا -max-args گزینه.

همچنین می‌توانید رشته‌های دیگری را به آرگومان‌های ارسال شده به فرمان اضافه یا اضافه کنید فرمان 2 با استفاده از -من گزینه xargs

پیشنهاد می‌کنیم بخوانید:  خروج Bash روی خطا

گزینه های زیادی برای xargs وجود دارد، اما این 3 مورد مهم ترین و مفیدترین آنها هستند. بنابراین، من فقط به این 3 آرگومان xargs در این مقاله می پردازم.

حرف زدن بس است بیایید چند نمونه را مرور کنیم.

مثال 1: ایجاد و حذف فایل های فهرست شده در یک فایل متنی

فرض کنید شما لیستی از نام فایل ها در یک فایل متنی دارید files.txt.

می توانید محتویات فایل متنی را مشاهده کنید files.txt همانطور که در تصویر زیر نشان داده شده است.

$ گربه files.txt

روش استفاده از xargs روی لینوکس

اکنون، می‌توانید تمام فایل‌های فهرست شده در آن را ایجاد کنید files.txt فایل متنی با استفاده از دست زدن به فرمان با xargs به شرح زیر است:

$ گربه files.txt | xargs دست زدن به

روش استفاده از xargs روی لینوکسروش استفاده از xargs روی لینوکس

همانطور که می بینید، فایل ها همانطور که در لیست ذکر شده ایجاد می شوند files.txt.

روش استفاده از xargs روی لینوکسروش استفاده از xargs روی لینوکس

حال، فرض کنید، می‌خواهید فایل‌هایی را که در فهرست فهرست شده‌اند حذف کنید files.txt فایل متنی می توانید استفاده کنید rm فرمان با xargs به شرح زیر است:

$ گربه files.txt | xargs rm -v

روش استفاده از xargs روی لینوکسروش استفاده از xargs روی لینوکس

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

روش استفاده از xargs روی لینوکسروش استفاده از xargs روی لینوکس

این یک مثال بسیار ساده از xargs است.

مثال 2: STDOUT را به دستوراتی که Pipe را پشتیبانی نمی کنند هدایت کنید

می توانید STDOUT یک دستور را تغییر مسیر دهید فرمان 1 به عنوان STDIN یک دستور دیگر فرمان 2 اگر فرمان فرمان 2 از لوله لینوکس پشتیبانی می کند. اما اگر دستور از pipe پشتیبانی نمی کند، نمی توانید این کار را انجام دهید.

به عنوان مثال echo فرمان لوله را پشتیبانی نمی کند. بنابراین، دستور زیر نخواهد بود print هر چیزی که در تصویر زیر می بینید.

$ تاریخ | echo

روش استفاده از xargs روی لینوکسروش استفاده از xargs روی لینوکس

دستور xargs می تواند به شما در تغییر مسیر STDOUT of کمک کند فرمان 1 (در این مورد تاریخ) به STDIN از فرمان 2 (در این مورد echo) همانطور که در تصویر زیر می بینید.

$ تاریخ | xargs echo

روش استفاده از xargs روی لینوکسروش استفاده از xargs روی لینوکس

مثال 3: تغییر جداکننده xargs

در اینجا، من یک رشته چاپ کرده ام 123-456-7890 (یک شماره تلفن ساختگی) با استفاده از xargs. همانطور که می بینید، کل خروجی به عنوان یک آرگومان واحد در نظر گرفته می شود و xargs آن را اجرا می کند echo فقط یکبار دستور دهید

$ echo -n 1234567890 | xargs echo

روش استفاده از xargs روی لینوکسروش استفاده از xargs روی لینوکس

در اینجا، من جداکننده را به تغییر داده ام با استفاده از گزینه xargs همانطور که می بینید، خروجی 123-456-7890 اکنون به عنوان 3 آرگومان مختلف در نظر گرفته می شود 123، 456، و 7890.

$ echo -n “123-456-789” | xargs -n 1 echo

روش استفاده از xargs روی لینوکسروش استفاده از xargs روی لینوکس

مثال 4: اضافه کردن یا اضافه کردن آرگومان های xargs

می توانید رشته ای را به آرگومان ارسال شده به دستور اضافه کنید (به انتهای آرگومان اضافه کنید) یا رشته ای را اضافه کنید (به جلوی آرگومان اضافه کنید). فرمان 2 با استفاده از xargs قبل از اینکه روش انجام این کار را به شما نشان دهم، روش استفاده از آن را به شما نشان خواهم داد -من گزینه xargs

پیشنهاد می‌کنیم بخوانید:  روش ارسال نام فایل به عنوان آرگومان در اسکریپت شل

را -من گزینه xargs به شما امکان می دهد نمادی را برای آرگومان xargs تعریف کنید که به دستور ارسال می شود فرمان 2. درست مانند یک متغیر کار می کند.

مثلا،

$ echo -n “123-456-789” | xargs -n 1 -من{} echo {}

در اینجا گزینه -I تعریف می کند {} به عنوان نمادی برای این استدلال که xargs در حال حاضر کار می کند روی. یک بار نماد {} تعریف شده است، از نماد می توان برای ارسال آرگومان به دستور استفاده کرد فرمان 2، که (نماد {}) با مقدار آرگومان جایگزین می شود.

روش استفاده از xargs روی لینوکسروش استفاده از xargs روی لینوکس

حالا برای اضافه کردن رشته txt (مثلاً) برای هر آرگومان، می توانید از xargs به صورت زیر استفاده کنید:

$ echo -n “123-456-789” | xargs -n 1 -من{} echo {}txt

روش استفاده از xargs روی لینوکسروش استفاده از xargs روی لینوکس

به همین ترتیب، می توانید رشته را از قبل آماده کنید سلام (بیایید بگوییم) به هر استدلال به صورت زیر:

$ echo -n “123-456-789” | xargs -n 1 -من{} echo “سلام {}”

روش استفاده از xargs روی لینوکسروش استفاده از xargs روی لینوکس

مثال 5: تغییر پسوند فایل های خاص

این یکی کمی مشکل است. اما من توضیح خواهم داد که چگونه کار می کند. نگران نباشید.

فرض کنید، شما چند فایل در فهرست کاری فعلی خود با پسوندهای مختلف فایل دارید. حالا، شما می خواهید همه آنها را به تغییر دهید png افزونه.

روش استفاده از xargs روی لینوکسروش استفاده از xargs روی لینوکس

می‌توانید پسوند فایل‌های موجود در فهرست کاری فعلی خود را با xargs به png تغییر دهید:

$ ls | xargs -من{} bash ‘FILE={} && mv -v $FILE ${FILE%%.*}.png’

روش استفاده از xargs روی لینوکسروش استفاده از xargs روی لینوکس

همانطور که می بینید تمام پسوند فایل به png تغییر کرده است.

روش استفاده از xargs روی لینوکسروش استفاده از xargs روی لینوکس

در اینجا xargs یک را شروع می کند bash زیر پوسته و اجرا می کند bash فرمان

فایل={} && mv -v $FILE ${FILE%%.*}.png

اولین، FILE={} نماد را اختصاص می دهد {} مقدار، که نام فایل (مقدار آرگومان xargs) به است فایل متغیر پوسته

سپس، mv دستور برای تغییر پسوند فایل استفاده می شود.

را $FILE متغیر پوسته شامل نام فایل اصلی است.

${FILE%%.*} پسوند نام فایل (شامل کاراکتر .) را حذف می کند و سپس .png رشته به نام فایل حذف شده اضافه می شود.

xargs می تواند کارهای پیچیده تری انجام دهد. به آزمایش چیزهای جدید با xargs ادامه دهید. آسمان حد توست

اگر به کمک نیاز دارید روی xargs، شما می توانید مرد را بررسی کنید page xargs به شرح زیر است:

$ مرد xargs

روش استفاده از xargs روی لینوکسروش استفاده از xargs روی لینوکس

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

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

زمان انتشار: 1402-12-31 14:03:02

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

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

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