Awk haqqında məlumat əldə edin: Ən güclü mətn emalı vasitəsi?

Açıqlama: Dəstəyiniz saytın işini davam etdirməyə kömək edir! Bu səhifədə tövsiyə etdiyimiz bəzi xidmətlər üçün bir müraciət haqqı qazanırıq.


Awk sizə lazım bilmədiyiniz ən böyük mətn emal vasitəsidir. Ancaq bir çox məlumatla işləsəniz, ehtimal ki, “bu cədvəldən məlumatların ikinci və beşinci sütununu çıxarmaq həqiqətən yaxşı olardı.” Və bu, ən sadə formada, Awk’ın etdiyi şeydir.

Bir az tarix

Əvvəlki günlərdə insanların çoxu bir əlaqəli məlumat bazasının nə olduğunu – və MySQL inkişafından təxminən iki on il əvvəl – çox sayda məlumat mətn sənədlərində saxlanılırdı. Həqiqət budur ki, bir çox məlumat hələ də bu şəkildə saxlanılır. Bu Unix əməliyyat sistemlərində xüsusilə doğrudur. Məsələn, Unix / etc / passwd faylı, sistemdəki hər istifadəçi üçün bir sətirdən ibarət olan bir mətn faylıdır və istifadəçi üçün hər biri bir nöqtə ilə ayrılmışdır. Misal üçün:

admin: *: 1001: 2001: İdarəçi: / ev / kök: / ev / sh
brian: *: 1002: 2002: Brian Kernighan: / ev / brian: / ev / bash

Böyük sistemlərdə bu cür passiv sənədlər minlərlə sətirdən ibarət ola bilər. Kompüterinizdə hesabları olan insanların adlarının tam siyahısını istəyəcəyiniz zamanların ola biləcəyini təsəvvür edə bilərsiniz. Bu vəziyyətdə 5-ci sahə olardı. Beləliklə 1977-ci ildə üç proqramçı bunu etmək üçün ümumi bir proqram yaratdı. Bunlar: Alfred Aho, Peter Weinberger və Brian Kernighan. Və başlanğıcları AWK, Awk adını necə aldı.

Uyğun nümunə

Varsayılan olaraq, Awk sahələrin boşluq işarələri ilə ayrıldığını düşünür. Lakin Awk-a fərqli bir sahə ayırıcı vermək üçün -F (və ya -field-separator) bayraq istifadə edərək fərqli bir simvol istifadə etdiyini söyləyə bilərsiniz. / Etc / passwd vəziyyətində “:” işarəsini istifadə etmək istərdik.

Ayrıcılığın xarakterini nəzərə alaraq, Awk birinci sahəni $ 1 dəyişəninə, ikinci sahəni $ 2 dəyişəninə və s. Təyin edir. Bütün xətt $ 0 təyin edilmişdir. Bu tanış görünürsə, ola bilər ki, Bourne və Bash qabığı skriptlərinin əmr satırı parametrlərini necə idarə etməsi.

Awk skriptləri fayllara qoymaq mümkün olsa da, ümumiyyətlə Awk əmrinin bir hissəsi kimi əmr satırına yerləşdirilir. Budur / və s / passwd faylında sadalanan hesabların bütün istifadəçilərini və həqiqi adlarını çıxaracaq sadə bir əmr.

awk -F: ” / etc / passwd

Bu, yuxarıdakı nümunə / etc / passwd faylımızdan aşağıdakı nəticəni çıxaracaqdır:

admin İdarəçi
brian Brian Kernighan

Bu qədər sadə bir Awk proqramı var. Ancaq yəqin ki, bunun yalnız çox güclü olduğunu görə bilərsiniz. Çox vaxt insanlar belə bir faylı bir cədvələ salacaqlar, lazımsız sütunları silib sonra nəticəni yeni mətn faylı olaraq saxlayacaqlar. Bir neçə saniyə ərzində Awk ilə eyni şeyi edə bilsəniz, bu, çətin olur. Və bu, yalnız başlanğıcdır. Çıxış şərti edə bilərsiniz; çıxışı tamamilə idarə edə bilərsiniz; ədədi məlumatlarla məşğul olursan, onda hesablamalar edə bilərsən; və daha çox.

Awk Resursları

Awk öyrənmək üçün çox asan bir dildir. Yalnız bunu etmək üçün çox sayda resurs var. Aşağıda bir neçəsinə keçəcəyik.

Onlayn Dərsliklər

Aşağıda ən başında başlayan və sizi dilin ən vacib cəhətləri ilə tanış edən bir sıra dərslər var. Hansı ən faydalı olduğunu özünüzdən asılı olacaq.

  • Grymoire Awk Tutorial: bu Bruce Barnett’in Awk’a əla girişidir. Bütün bu Unix dərslərini nəzərdən keçirin.
  • Ümumi mövzular: Misal ilə uyğundur: bu IBM-dəndir və Awk’ı öyrənmək üçün ağrısız bir yol təqdim edir. İş bitdikdən sonra 2-ci hissəni yoxlamağınızdan əmin olun.
  • Awk Tutorial: bu hətta Linux maşınlarında yükləmək və quraşdırmaqla sizi aparan Awk üçün Təlimlər nöqtəsidir..
  • Uyğun bir primer: bu dərs vəsaiti çox sürətlə gedir, amma qabıq yazıları ilə rahatsınızsa və ya əvvəllər Awk istifadə etmisinizsə, yaxşı seçimdir.

Kitablar

Awk üçün bir təməl verən bir sıra yaxşı kitablar var.

  • Aho və Kernighan tərəfindən Awk Proqramlaşdırma Dili: bu Awk’ın orijinal kitabıdır. Ancaq orijinal tərtibatçıların əksər kitablarından fərqli olaraq, bu, həqiqətən yaxşıdır və başa düşmək asandır.
  • Sed & Dougherty və Robbins tərəfindən Awk: bu Awk ilə yanaşı axın redaktoru (sed) ilə də məşğul olan bir klassik. İkisi çox vaxt birlikdə istifadə olunur. Sed və Awk: Sistemlərlə rahat olduğunuzda Cib Referansı da maraq doğurur.
  • AWK Proqramlaşdırması: George Duckett-in sualları və cavabları: bu, daha çox və ya daha az kitab kitabı olan maraqlı yandırıcı bir kitabdır. Bu Awk haqqında düşüncə tərzinizi və istifadə edilə biləcəyinizi genişləndirəcək çox sayda gözəl sualları əhatə edir.
  • Effektiv yöndəmsiz proqramlaşdırma: Arnold Robbins tərəfindən Universal Mətn Emalı və Nümunə Uyğunluğu: Bu, Awk Proqramlaşdırma Lanuage-nin davamı kimidir. Bu dildə dərinləşir və Awk, Gawk-ın Gnu versiyasına diqqət yetirir.

Uyğun tətbiqlər

1977-ci ildə birincisindən bəri bir sıra Awk tətbiqetmələri baş verdi. Əslində 1985-ci ildə (Awk Proqramlaşdırma Dili nəşr olunmadan) Awk çox genişləndi. Bu versiyaya çox vaxt “yeni Awk” və ya çənə deyilir. Hal-hazırda daha populyar bəzi versiyalar mövcuddur.

  • Gawk: bu Gnu Layihəsinin Awk tətbiqidir. Son dərəcə populyardır və digər dillərdən daha yaxşı digər dilləri dəstəkləyir.
  • BWK: Bu Awk Proqramlaşdırma Lanuage üçün istifadə edilənlərdən bəri “bir həqiqət Awk” dır. FreeBSD-də geniş istifadə olunur.
  • Mawk: bu əvvəlcə Mayk Brennan tərəfindən yazılmış, lakin Thomas Dickey tərəfindən 2009-cu ildən bəri saxlanılan və yenilənən bir versiyadır..
  • BusyBox: bu Awk daxil olmaqla bir sıra sadələşdirilmiş Unix vasitələrini təmin edən ümumi vasitədir.

Onlayn Forumlar

Bəzən sadəcə sual vermək lazımdır. Və internetdə Awk’ı yaxşı bilən bir çox insan var. Budur suallarınızı cavablandırmaq üçün daha yaxşı yerlər.

  • Comp.lang.awk Google Qrupu: bu yoxlanmağa dəyər olan nisbətən aktiv bir forumdur.
  • Stack Overflow Uyğun suallar: bu Awk ilə əlaqəli olduğu qeyd olunan ən yeni sualların bir səhifəsidir. Öz suallarınızı vermək üçün əla bir istinad və yerdir.
  • Awk Reddit: bu Awk üçün subredditdir. Dəhşətli dərəcədə aktiv deyil, amma ətrafındakı bilikli insanlar çoxdur və sualları cavablandırmaq üçün yaxşı bir yerdir.

Xülasə

Awk, mətn işlənməsi üçün əla bir dildir. Dili kifayət qədər itələmək istəyirsinizsə, heyrətamiz şeylər edə bilər. Eyni zamanda, sintaksis kifayət qədər sadədir ki, tez işləmə alət dəstinizə daxil ola bilər. Burada təqdim olunan mənbələr sizə lazım olan bütün yardımları göstərməlidir.

Jeffrey Wilson Administrator
Sorry! The Author has not filled his profile.
follow me
    Like this post? Please share to your friends:
    Adblock
    detector
    map