Customize Consent Preferences

We use cookies to help you navigate efficiently and perform certain functions. You will find detailed information about all cookies under each consent category below.

The cookies that are categorized as "Necessary" are stored on your browser as they are essential for enabling the basic functionalities of the site. ... 

Always Active

Necessary cookies are required to enable the basic features of this site, such as providing secure log-in or adjusting your consent preferences. These cookies do not store any personally identifiable data.

No cookies to display.

Functional cookies help perform certain functionalities like sharing the content of the website on social media platforms, collecting feedback, and other third-party features.

No cookies to display.

Analytical cookies are used to understand how visitors interact with the website. These cookies help provide information on metrics such as the number of visitors, bounce rate, traffic source, etc.

No cookies to display.

Performance cookies are used to understand and analyze the key performance indexes of the website which helps in delivering a better user experience for the visitors.

No cookies to display.

Advertisement cookies are used to provide visitors with customized advertisements based on the pages you visited previously and to analyze the effectiveness of the ad campaigns.

No cookies to display.

AWK pavyzdžiai numeris #2

Iš teorijos į praktiką su AWK ir shellu susipažinti geriausiai padeda praktiniai uždaviniai. Turėdamas laisvą minutę nusprendžiau atsirinkti savo Youtube kanalo, populiariausių video pavadinimus ir susidėti juos į sąrašą. Šis straipsniukas tuo prasidės, o ateityje tikiuosi ir pratęsti su dar daugiau pavyzdžių, nes AWK tikrai naudingas įrankis informacijai atfiltruoti.

AWK filravimas praktika pavyzdžiai
Išmokite naudotis AWK

Youtube pavadinimų filtravimas

Grubiai ir paprastai buvo nukopijuotas visas puslapio tekstas su visais pavadinimais. Ir gavome tokį failą, kuris ir buvo List.txt paprastumui. Pati pirma mano idėja buvo išvalyti tarpus tarp eilučių, kadangi jos tikrai sugadins galimybę gauti rezultatus, pratęsimas žemiau failo.

Failas List.txt:
 1:00
 TF2 - How to get and use the Backpack Expander HD 
 Mar 27, 2011 7:14 PM
 Edit

 252
  256
  83

103,278 views

 0:47
 Gas Fill Fail - How NOT to Fill Up a Gas Tank HD
 Nov 1, 2014 6:30 PM
 Edit

 28
  104
  35

101,355 views

 1:27
 Prototype - First Helicopter mission - Tutorial Fail HD 
 Jun 15, 2009 12:46 PM
 Edit

 147
  59
  50

86,524 views

Tam panaudojau šią komandą.

$ awk 'NF' List.txt > List2.txt

‘NF’ – komanda NF yra number of fields iš esmės parodo tas eilutes, kuriose yra turinys (tekstas ar simboliai). Pašalinus eilutes gavome didelį failą su daug eilučių arba laukų. Visi bandymai išgauti kažkokį rezultatą nedavė naudos, kol nesuvokiau, kad man teliko iš ties tik eilutės. Kartais tiesiog reikia atsitraukti šiek tiek tolėliau, kad suprastum paprastus dalykus. Tęsiam žemiau…

Gavome tokį rezultatą:

Failas List2.txt:

1:00
TF2 - How to get and use the Backpack Expander HD 
Mar 27, 2011 7:14 PM
Edit
 252
 256
 83
103,278 views
 0:47
Gas Fill Fail - How NOT to Fill Up a Gas Tank HD
Nov 1, 2014 6:30 PM
Edit

Užduotis buvo išfiltruoti tik pavadinimo eilutes iš mūsų turimo failo. Taigi tam reikia skripto, kuris rodytų būtent kas n-eilutę. Po neilgų ir keletos bandymų pavyko surasti tinkamą kodą:

$ awk 'NR%8==2' List2.txt

Sprendimas yra labai paprastas. NR – rodo išgauna eilučių skaičių – atvaizduoja eilučių skaičių ir spausdina kas 8 eilutę, pradedant nuo 2 eilutės. Ir galutinis rezultatas yra toks:

TF2 - How to get and use the Backpack Expander HD
Gas Fill Fail - How NOT to Fill Up a Gas Tank HD
Prototype - First Helicopter mission - Tutorial Fail HD

Add a Comment

Your email address will not be published. Required fields are marked *

Buy Me A Coffee
Thank you for visiting. You can now buy me a coffee!