awkplan9 - آنلاین در ابر

این دستور awkplan9 است که می تواند در ارائه دهنده هاست رایگان OnWorks با استفاده از یکی از چندین ایستگاه کاری آنلاین رایگان ما مانند Ubuntu Online، Fedora Online، شبیه ساز آنلاین ویندوز یا شبیه ساز آنلاین MAC OS اجرا شود.

برنامه:

نام


awk - زبان اسکن و پردازش الگوی هدایت شده

خلاصه


بیدار [ -Ffs ] [ -v var = ارزش ] [ -آقایn ] [ -mfn ] [ -f پرسه زدن [ پرسه زدن ] [ پرونده ... ]

شرح


بیدار هر ورودی را اسکن می کند پرونده برای خطوطی که با هر یک از مجموعه ای از الگوهای مشخص شده مطابقت دارند
به معنای واقعی کلمه در پرسه زدن یا در یک یا چند فایل مشخص شده به عنوان -f پرونده. با هر الگوی وجود دارد
می تواند یک عمل مرتبط باشد که زمانی انجام می شود که یک خط از a پرونده منطبق با
الگو. هر خط با بخش الگوی هر الگو-عمل مطابقت دارد
بیانیه؛ عمل مرتبط برای هر الگوی همسان انجام می شود. نام فایل
به معنای ورودی استاندارد است. هر پرونده از فرم var = ارزش به عنوان یک تکلیف تلقی می شود، نه
یک نام فایل، و در زمانی اجرا می شود که اگر یک نام فایل بود، باز می شد.
گزینه -v و پس از آن var = ارزش یک تکلیف است که باید قبلا انجام شود پرسه زدن اجرا می شود؛
به هر تعداد -v ممکن است گزینه هایی وجود داشته باشد. -F fs گزینه جداکننده فیلد ورودی را تعریف می کند
بیان منظم باشد fs.

یک خط ورودی معمولاً از فیلدهایی تشکیل می‌شود که با فاصله سفید یا منظم از هم جدا شده‌اند
بیان FS. فیلدها مشخص می شوند $1, $2، ...، در حالی که $0 به کل خط اشاره دارد.
If FS تهی است، خط ورودی برای هر کاراکتر به یک فیلد تقسیم می شود.

برای جبران اجرای ناکافی مدیریت ذخیره سازی، -آقای گزینه می تواند باشد
برای تنظیم حداکثر اندازه رکورد ورودی استفاده می شود -mf گزینه تنظیم حداکثر
تعداد فیلدها

یک دستور الگو-عمل شکل دارد

الگو { اقدام }

یک گمشده { اقدام } به معنی چاپ خط. یک الگوی گمشده همیشه مطابقت دارد. الگو-
دستورات عمل با خطوط جدید یا نقطه ویرگول از هم جدا می شوند.

یک عمل دنباله ای از جملات است. یک عبارت می تواند یکی از موارد زیر باشد:

اگر ( بیان ) بیانیه [دیگر بیانیه ]
در حالی که ( بیان ) بیانیه
برای( بیان ; بیان ; بیان ) بیانیه
برای( VAR in صف ) بیانیه
do بیانیه در حالی که ( بیان )
شکستن
ادامه دادن
{[ بیانیه ... ] }
بیان #معمولا VAR = بیان
چاپ [ بیان-لیست ] [ > بیان ]
printf قالب [ بیان-لیست ] [ > بیان ]
برگشت [ بیان ]
# بعدی از الگوهای باقی مانده در این خط ورودی رد شوید
nextfile # از بقیه این فایل رد شوید، بعدی را باز کنید، از بالا شروع کنید
حذف کردن صف[ بیان ]# یک عنصر آرایه را حذف کنید
حذف کردن صف # تمام عناصر آرایه را حذف کنید
خروج [ بیان ] # فوراً خارج شوید. وضعیت است بیان

بیانیه ها با نقطه ویرگول، خطوط جدید یا پرانتز راست خاتمه می یابند. یک خالی اصطلاح-
فهرست مخفف $0. ثابت‌های رشته‌ای نقل‌قول می‌شوند، با گریزهای معمول C شناسایی می‌شوند
در داخل. عبارات در صورت لزوم مقادیر رشته ای یا عددی را می گیرند و با استفاده از آن ساخته می شوند
اپراتورها + - * / % ^ (توانایی)، و الحاق (با فضای سفید نشان داده می شود).
اپراتورها ! ++ -- += -= *= /= %= ^= > >= < <= == != ?: نیز در دسترس هستند
اصطلاحات. متغیرها ممکن است اسکالر، عناصر آرایه (نشان داده شده x[i]) یا زمینه ها
متغیرها به رشته تهی مقداردهی اولیه می شوند. زیرنویس های آرایه ممکن است هر رشته ای باشند، نه
لزوما عددی؛ این به نوعی حافظه تداعی کننده اجازه می دهد. چند اشتراک
مانند [من، ج، ک] مجاز هستند؛ اجزای تشکیل دهنده به هم پیوسته و با مقدار از هم جدا شده اند
of SUBSEP.

La چاپ بیانیه آرگومان های خود را بر روی خروجی استاندارد چاپ می کند (یا روی فایل if >پرونده or
>>پرونده وجود دارد یا روی لوله اگر |CMD موجود است)، با فیلد خروجی فعلی جدا شده است
جداکننده، و توسط جداکننده رکورد خروجی خاتمه می یابد. پرونده و CMD ممکن است تحت اللفظی باشد
نام ها یا عبارات پرانتز شده؛ مقادیر رشته های یکسان در عبارات مختلف نشان می دهد
همون فایل باز در printf بیانیه لیست عبارات خود را مطابق با فرمت می کند
قالب (نگاه کنید به fprintf(2)). عملکرد داخلی بستن(صادرات) فایل یا لوله را می بندد صادرات.
عملکرد داخلی فلاش (صادرات) هر خروجی بافری برای فایل یا لوله را شستشو می دهد صادرات.

توابع ریاضی درصد این سطح, ورود به سیستم, sqrt, بدون, کیهانو آتان 2 ساخته شده اند.
در توابع:

طول طول آرگومان آن به عنوان یک رشته یا از $0 اگر هیچ استدلالی وجود ندارد

حاشیه عدد تصادفی روی (0,1،XNUMX)

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

INT به یک مقدار صحیح کوتاه می شود

utf آرگومان عددی خود، یک عدد کاراکتر، را به یک رشته UTF تبدیل می کند

substr(s, m, n)
la n-رشته فرعی کاراکتر s که از موقعیت شروع می شود m شمارش شده از 1

فهرست مطالب(s, t)
موقعیت در s جایی که رشته t رخ می دهد، یا 0 اگر رخ نمی دهد.

همخوانی داشتن(s, r)
موقعیت در s جایی که عبارت منظم r رخ می دهد، یا 0 اگر رخ نمی دهد. را
متغیرها RSTART و طول روی موقعیت و طول منطبق تنظیم می شوند
رشته

شکاف(s, a, fs)
رشته را می شکافد s به عناصر آرایه a[1], a[2]، ... ، a[n]، و برمی گردد n.
جداسازی با عبارت منظم انجام می شود fs یا با جداکننده میدان FS if
fs داده نمی شود. یک رشته خالی به عنوان جداکننده فیلد، رشته را به یکی تقسیم می کند
عنصر آرایه در هر کاراکتر

زیر(r, t, s)
جایگزین t برای اولین وقوع عبارت منظم r در رشته s.
If s داده نمی شود، $0 استفاده می شود.

gsub همان زیر با این تفاوت که همه موارد عبارت منظم جایگزین می شوند. زیر
و gsub تعداد تعویض ها را برگردانید.

از sprintf (fmt, صادرات, ...)
رشته حاصل از قالب بندی صادرات ... با توجه به printf قالب fmt

سیستم(CMD)
اجرا می کند CMD و وضعیت خروج آن را برمی گرداند

برای کاهش(خ)
یک کپی از خ با تمام حروف بزرگ ترجمه شده به آنها
معادل های حروف کوچک مربوطه

تاپر(خ)
یک کپی از خ با تمام حروف کوچک ترجمه شده به آنها
معادل های حروف بزرگ مربوطه

"عملکرد" دریافت خط مجموعه $0 به رکورد ورودی بعدی از فایل ورودی فعلی؛
دریافت خط <پرونده مجموعه $0 به رکورد بعدی از پرونده. دریافت خط x متغیر را تنظیم می کند x به جای آن.
در نهایت، CMD | دریافت خط لوله های خروجی از CMD به دریافت خط; هر تماس از دریافت خط بازده
خط بعدی خروجی از CMD. در تمام موارد، دریافت خط برای یک ورودی موفق، 1 را برمی گرداند،
0 برای پایان فایل و -1 برای خطا.

الگوها ترکیبات بولی دلخواه هستند (با ! || &&) از عبارات منظم و
عبارات رابطه ای عبارات با قاعده مانند هستند regexp(6). منظم جدا شده
عبارات در یک الگو برای کل خط اعمال می شود. عبارات منظم نیز ممکن است در
عبارات رابطه ای با استفاده از عملگرها ~ و !~. /re/ منظم ثابت است
اصطلاح؛ هر رشته (ثابت یا متغیر) ممکن است به عنوان یک عبارت منظم استفاده شود، به جز
در موقعیت یک عبارت منظم جدا شده در یک الگو.

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

یک عبارت رابطه ای یکی از موارد زیر است:

بیان کبریت عبارت منظم
بیان دوباره چرخیدن بیان
بیان in نام آرایه
(صادرات,expr،...) in نام آرایه

جایی که دوباره چرخیدن هر یک از شش عملگر رابطه ای در C و a است کبریت است یا ~
(مطابقت) یا !~ (مطابقت ندارد). شرطی یک عبارت حسابی، رابطه ای است
عبارت یا ترکیب بولی از اینها.

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

اسامی متغیر با معانی خاص:

CONVFMT
فرمت تبدیل مورد استفاده هنگام تبدیل اعداد (پیش‌فرض %6g)

FS عبارت منظم برای جدا کردن فیلدها استفاده می شود. همچنین با گزینه تنظیم می شود -Ffs.

NF تعداد فیلدها در رکورد جاری

NR شماره ترتیبی رکورد جاری

FNR شماره ترتیبی رکورد جاری در فایل جاری

نام فایل
نام فایل ورودی فعلی

RS جداکننده رکورد ورودی (خط جدید پیش فرض)

FSO جداکننده میدان خروجی (پیش فرض خالی)

ORS جداکننده رکورد خروجی (خط جدید پیش فرض)

OFMT فرمت خروجی برای اعداد (پیش‌فرض %6g)

SUBSEP چندین زیرنویس را جدا می کند (پیش فرض 034)

ARGC شمارش آرگومان، قابل تخصیص

ARGV آرایه آرگومان، قابل تخصیص. اعضای غیر پوچ به عنوان نام فایل در نظر گرفته می شوند

محیط زیست
مجموعه ای از متغیرهای محیطی؛ زیرنویس ها نام هستند.

توابع ممکن است (در موقعیت یک دستور الگو-عمل) به این ترتیب تعریف شوند:

تابع foo(a, b, c) { ...; برگردان x}

پارامترها با مقدار اگر اسکالر و با مرجع اگر نام آرایه ارسال می شوند. توابع ممکن است
به صورت بازگشتی نامیده می شود. پارامترها محلی برای تابع هستند. همه متغیرهای دیگر سراسری هستند.
بنابراین متغیرهای محلی ممکن است با ارائه پارامترهای اضافی در تابع ایجاد شوند
تعریف.

مثال ها


طول ($0) > 72
خطوط بیش از 72 کاراکتر را چاپ کنید.

{ چاپ 2 دلار، 1 دلار }
دو فیلد اول را به ترتیب مخالف چاپ کنید.

BEGIN { FS = "،[ \t]*|[ \t]+" }
{ چاپ 2 دلار، 1 دلار }
همان، با فیلدهای ورودی که با کاما و/یا جاهای خالی و برگه‌ها از هم جدا شده‌اند.

{s += $1 }
END { print "sum is"، s، "میانگین است"، s/NR }
ستون اول، جمع چاپ و میانگین را جمع کنید.

/شروع پایان/
تمام خطوط بین جفت شروع/توقف را چاپ کنید.

BEGIN { # شبیه سازی از دست(1)
برای (i = 1; i < ARGC; i++) printf "%s", ARGV[i]
printf "\ n"
خروج }

SOURCE


/sys/src/cmd/awk

با استفاده از خدمات onworks.net از awkplan9 به صورت آنلاین استفاده کنید



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