3 روانش ارسال

0.1.2 ۲۲ مه ۲۰۲۴
0.1.1 ۵ مارس ۲۰۲۴
0.1.0 ۵ مارس ۲۰۲۴

#۶۷۹ در ابزارهای خط فرمان

لیسانس MIT

۱۲ کیلوبایت
۱۴۲ خط

سارگ

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

Crates.io Version

زبان

ویژگی‌ها

  • اجرای نامحوری: دستورات پیاپی را به محض اینکه داده‌ها در دسترس قرار می‌گیرند اجرا می‌کند، بدون اینکه منتظر اتمام کامل برنامه ورودی باشد.
  • بهره‌وری بالا: مقدار زیادی داده را به سرعت پردازش می‌کند در حالی که مصرف حافظه را پایین نگه می‌دارد، به لطف جریان‌دار.
  • انعطاف‌پذیری: می‌تواند با محیط‌های مختلف پوسته و ابزارهای خط فرمان ترکیب شود و به یک گستره وسیعی از کاربردها پاسخ دهد.

نصب

در حال حاضر، سارگ می‌تواند با استفاده از Cargo، مدیریت‌کننده بسته‌های Rust، نصب شود.

cargo install sargs-cmd

استفاده

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

cat example.txt | sargs echo

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

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

cat example.txt | slow_pass_command | sargs echo

پیکربندی و گزینه‌ها

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

sargs --help

Usage: sargs [OPTIONS] [ARGS]...

Arguments:
  [ARGS]...  

Options:
  -I <INPUT_PLACEHOLDER>           
      --buffer-size <BUFFER_SIZE>  
  -h, --help                       Print help
  -V, --version                    Print version

PLACEHOLDER ورودی

شما می‌توانید یک جایگزین برای داده‌هایی که به دستور پیاپی ارسال می‌شوند با استفاده از گزینه -I یا --input-placeholder تعیین کنید.

cat example.txt | sargs -I __INPUT__ echo __INPUT__

در دستور بالا، __INPUT__ با محتوای هر خط هنگام ارسال به دستور echo جایگزین می‌شود.

اندازه بافر

您可以使用 --buffer-size 选项指定输出命令的缓冲区数量。默认值为 128

贡献

sargs 是一个开源项目,欢迎社区贡献。请通过 GitHub 仓库提交错误报告、功能建议和拉取请求。

许可证

sargs 采用 MIT 许可证 发布。

依赖项

~4–11MB
~100K SLoC