د AWK کمانډونه او سکرېپټونه څنګه ولیکئ

حکمونه، نخشه، او مثالونه

د آرک کمانډ د متن فایلونو پروسس یا تحلیل لپاره یو پیاوړی میتود دی - په ځانګړي توګه، د ډاټا فایلونه چې د کرښې (قطار) او کالمونو لخوا تنظیم شوي دي.

د ساده آرک امرونه د کمانډ کرښې څخه چلول کیدی شي. نور پیچلي کارونه باید د آیک پروګرامونو (په نامه ورته د آک ټوپ نومونه) یو فایل ته ولیکل شي.

د آرک کمانډ بنسټیز بڼه دا ښکاري:

awk 'pattern {action}' input-file> output-file

د دې معنی: د انټرنټ فایل هر یو کرښه ونیسئ؛ که چیرې دا لیکه ولري نو پورتنۍ بڼه لین ته کړنلاره پلي کوي او نتیجه لیکه د محصول فایل ته ولیکئ. که چیرې نمونه پریښودل شي، عمل په ټولو لیکو کې پلی کیږي. د مثال په توګه:

awk '{$ $ 5}' table1.txt> output1.txt

دا بیان د هر کرښې د پنځم کالم عنصر لیري کوي او دا د "output.txt" د محصول فایل کې د کرښې په توګه لیکي. متغیر '$ 4' دویم کالم ته اشاره کوي. په ورته ډول تاسو کولی شئ لومړی، دویم، او دریم کالم، $ 1، $ 2، $ 3، او نور سره لاسرسی ومومئ. په ډیفالټ کالمونو کې د ځایونو یا ټبونو په واسطه نیول کیږي (په نامه یادي سپینه ځای). نو، که د انټرنیټ "table1.txt" فایل په دې لینونو کې شامل وي:

1، جسٹن تیمبرکل، د 545 سرلیک، قیمت 7،30 $، ټیلر سوفٹ، 723 سرلیک، قیمت $ 7.90 3، مکک جگګر، 610 عنوان، قیمت $ 7.90 4، لیډي ګیګ، سرلیک 118، قیمت $ 7.30 5، جانی کیش، عنوان 482، قیمت $ 6.50 6، ایلیس پریسلي، د 335 سرلیک، د $ 7.30 7 ډالره، جان لینون، 271 سرلیک، د $ 7.90 ډالرو قیمت، مایک جیکسن، 373 سرلیک، د $ 550 قیمت

بیا به قومانده د محصول فایل ته "output1.txt" کې لاندې لینونه وليکي: "output1.txt":

545، 723، 610، 118، 482، 335، 271، 373،

که چیرې د کالم فرق جدا وي د ځایونو یا ټبونو پرته بل څه، لکه د کوټا په څیر، تاسو کولی شئ چې په لاندې بیان کې مشخص کړئ:

awk-f، '{$ $ 3}' table1.txt> output1.txt

دا به د هر کرښې د کالم 3 څخه عنصر وټاکي که چیرې کالم د کوما لخوا په پام کې ونیول شي. نو له دې امله، پدې صورت کې به دا وي:

عنوان 545 عنوان 723 سرلیک 610 سرلیک 118 سرلیک 482 سرلیک 335 سرلیک 271 سرلیک 373

د بیانونو لیست د کروری برکونو دننه ('{'، '}') بلل کیږی. که تاسو د یوه بلاک مخې ته مشروط بیان بیان کړئ، د بلاک دننه بیان یواځې هغه مهال اعدام کیږي چې حالت صحیح وي.

$ 7 == "\ $ 7.30" {table $ 3} 'table1.txt

پدې حالت کې، حالت $ 7 == "$ 730" دی، دا پدې مانا ده چې په 7 ستون کې عنصر د $ 7.30 ډالرو سره برابر دی. د ډالر لاسلیک مخنیوی لپاره کارول کیږي ترڅو د سیسټم مخنیوي له $ 7 سره د متغیر په توګه وکاروي او د لفظي توګه ډالر یې لیږدوي.

نو د دې حیرانتیا بیان د هرې کرښې په دریم ستون کې عنصر ته اشاره کوي چې "په 7 او 7" کې "$ 7.30" لري.

تاسو کولی شئ د منظم بیانات هم د شرط په توګه کاروئ. د مثال په توګه:

awk '/ 30 / {$ $ 3}' table1.txt

د دوو سایټونو ('/') تر منځ تار معمولا بیان دی. په دې حالت کې، دا یوازې تار دی "30." دا پدې مانا ده چې په یوه کرښه کې "30" شامل وي، سیسټم عنصر د هغه کرښه په دریم ستون کې چاپوي. په پورته بېلګې کې به محصول وي:

تیمبریلیک، ګګا، پریسلي،

که چیرې د میز عناصر شمیرې وي نو دا مثال په دې مثال کې حساب کوي:

awk '{چاپ ($ 2 * $ 3) + $ 7}'

د متغیرونو سربیره چې د اوسنۍ قطار ($ 1، $ 2، او نور) لاسرسي عناصر شتون لري $ متغیر $ دی، چې بشپړ قطار (کرښه)، او متغیر NF ته اشاره کوي چې د ساحو شمیر یې لري.

تاسو کولی شئ په دې مثال کې نوې متغیرونه هم تعریف کړئ:

awk '{sum = 0؛ لپاره (col = 1؛ col <= NF؛ col ++) sum + = $ col؛ د چاپ مجموعه } '

دا د هر قطار د ټولو عناصرو مجموعه متن او نښه کوي.

د بیان بیانونه اکثرا د سلونو حکمونو سره یو ځای کیږي.