Linux sistemoje „awk“ komanda naudojama įvairiai. Pavyzdžiui, jis gali būti naudojamas teksto failo turiniui atsispausdinti. Pirmoje daugelio tekstinių failų eilutėje yra failo antraštė, o kartais pirmoji eilutė turi būti praleista spausdinant failo turinį. Šioje pamokoje parodysime, kaip atlikti šią užduotį naudojant komandą „awk“.
Sukurkite tekstinį failą
Norėdami sekti šią mokymo programą, sukurkite tabuliavimo ženklu atskirtą tekstinį failą pavadinimu knygų sąrašas.txt turinį. Šiame faile yra knygų su atitinkamais autoriais sąrašas. Šioje pamokoje parodysime, kaip atspausdinti skirtingas šio failo dalis praleidus pirmąją eilutę.
Kibernetinis saugumas su Paulu Troncone'u, Carlu AlbinguKomandinė eilutė „Kung Fu Jason Cannon“
„Linux“ komandinė eilutė „Travis Booth“
Bashas paprastais žingsniais Mike'as McGrathas
Unix paprastais žingsniais Mike'as McGrathas
1 pavyzdys: praleiskite pirmąją failo eilutę naudodami NR ir operatorių „>“
NR kintamasis nurodo failų įrašų skaičių. Ši komanda „awk“ naudoja NR kintamąjį, kad praleistų pirmąją failo eilutę. NR vertė yra 1 pirmoje eilutėje. Ši komanda išspausdins eilutes, kurių NR vertė yra didesnė nei 1.
$ kačių knygų sąrašas.txt$ awk '(NR> 1)' knygų sąrašas.txt
Ši išvestis bus sukurta paleidus pirmiau nurodytas komandas. Išvestyje yra visos eilutės, išskyrus pirmąją failo eilutę.
2 pavyzdys: praleiskite pirmąją eilutę naudodami NR ir '!= 'operatorius
Ši „awk“ komanda yra panaši į ankstesniame pavyzdyje pateiktą komandą. Tačiau „!= „vietoj„> “čia naudojamas„ palyginimo operatorius “.
$ kačių knygų sąrašas.txt$ awk 'NR!= 1 'knygų sąrašas.txt
Ši išvestis bus sukurta paleidus pirmiau nurodytas komandas. Išvestyje rodomos visos eilutės, išskyrus pirmąją failo eilutę.
3 pavyzdys: praleiskite pirmąją failo eilutę naudodami sąlyginį sakinį
Ši komanda „awk“ atspausdins failo eilutes, jei teiginys „if“ yra teisingas. Čia teiginys „if“ bus teisingas tik tada, kai NR reikšmė nebus lygi 1.
$ kačių knygų sąrašas.txt$ awk 'if (NR!= 1) print knygų sąrašas.txt
Ši išvestis bus sukurta paleidus pirmiau nurodytas komandas. Išvestyje yra visos eilutės, išskyrus pirmąją failo eilutę.
4 pavyzdys: spausdinkite knygų pavadinimus iš failo, bet praleiskite pirmąją eilutę
Šiame pavyzdyje naudojamos dvi komandos „awk“, kad būtų atspausdinti visi knygų pavadinimai, išskyrus pirmąjį. „Awk“ komanda nuskaitys pirmąjį failo stulpelį pagal lauko skiriklį (\ t) ir išsiųs išvestį į antrąją komandą „awk“. Antroji komanda „awk“ išspausdins norimą išvestį.
$ kačių knygų sąrašas.txt$ awk -F "\ t" 'print $ 1' knygų sąrašas.txt | awk 'NR!= 1 spausdinti '
Ši išvestis bus sukurta paleidus pirmiau nurodytas komandas. Išvestyje rodomi visi knygų pavadinimai, išskyrus pirmosios knygos pavadinimus.
5 pavyzdys: Suformatuokite failo turinį praleidę pirmąją eilutę
Parinktis „-F“, kintamasis NR ir „printf“ yra naudojami šioje komandoje „awk“, kad generuotų suformatuotą išvestį praleidus pirmąją eilutę. Komanda padalins failo turinį į stulpelius pagal \ t, o „printf“ išspausdins pirmąjį ir antrąjį stulpelius, kai NR vertė yra bent 2.
$ kačių knygų sąrašas.txt$ awk -F '\ t' 'NR> = 2 printf "% 30s% 20s \ n", $ 1, $ 2' knygų sąrašas.txt
Ši išvestis bus sukurta paleidus pirmiau nurodytas komandas. Išvestyje rodomas suformatuotas failo turinys, išskyrus pirmąją failo eilutę.
6 pavyzdys: Spausdinkite knygų pavadinimus praleidę pirmąją eilutę naudodami NR ir NF
Ši komanda „awk“ naudoja parinktį „-F“, o NR ir NF knygų pavadinimams spausdinti praleidus pirmąją knygą. Parinktis „-F“ naudojama failų bazės turiniui atskirti \ t. NR naudojamas praleisti pirmąją eilutę, o NF naudojamas tik pirmajam stulpeliui spausdinti.
$ kačių knygų sąrašas.txt$ awk -F '\ t' 'NR> 1 && NF = 1' knygų sąrašas.txt
Ši išvestis bus sukurta paleidus pirmiau nurodytas komandas. Išvestyje yra visi faile esantys knygų pavadinimai, išskyrus pirmosios knygos pavadinimus.
7 pavyzdys: praleidę pirmąją eilutę atsispausdinkite suformatuotus autorių vardus
Ši komanda „awk“ naudoja parinktį „-F“ ir sąlyginį teiginį, kad autorių vardai būtų spausdinami praleidus pirmąją eilutę. Čia NR vertė naudojama esant sąlygai „if“. Čia vietoj pirmosios eilutės turinio bus spausdinama „Autoriaus vardas: \ n \ n“ kaip pirmoji eilutė. Autoriaus vardai iš bylos bus atspausdinti kitoms NR reikšmėms.
$ kačių knygų sąrašas.txt$ awk -F '\ t' 'if (NR == 1) printf "\ nAutoriaus vardas: \ n \ n"; else printf "% s \ n", $ 2 'knygų sąrašas.txt
Ši išvestis bus sukurta paleidus pirmiau nurodytas komandas. Išvestyje rodomas tekstas „Autoriaus vardas:“ su nauja eilute, o visi autorių vardai spausdinami, išskyrus pirmąjį.
Išvada
Pirmąją failo eilutę galima praleisti naudojant įvairias „Linux“ komandas. Kaip parodyta šioje pamokoje, yra skirtingi būdai praleisti pirmąją failo eilutę naudojant komandą „awk“. Pažymėtina, kad komandos „awk“ kintamąjį galima naudoti norint praleisti bet kurios bylos pirmąją eilutę.