Kaip praleisti pirmąją failo eilutę naudojant „awk“

How Skip First Line File Using Awk



„Linux“ gali naudoti įvairias komandas „awk“. Pavyzdžiui, jis gali būti naudojamas teksto failo turiniui spausdinti. Daugelio teksto failų pirmoje eilutėje yra failo antraštė, o kartais pirmą eilutę reikia praleisti spausdinant failo turinį. Šioje pamokoje parodysime, kaip atlikti šią užduotį naudojant komandą „awk“.

Sukurkite teksto failą

Norėdami tęsti šią pamoką, sukurkite skirtuku atskirtą teksto failą pavadinimu booklist.txt su tokiu turiniu. Šiame faile yra knygų sąrašas su atitinkamais autoriais. Šioje pamokoje parodysime, kaip atspausdinti skirtingas šio failo dalis praleidus pirmąją eilutę.





Kibernetinis saugumas su basu Paulu Troncone, Carlu Albingu

Komandinė eilutė „Kung Fu Jason Cannon“

„Linux“ komandų eilutės „Travis Booth“

Mash McGrath lengvais žingsniais

„Unix“ lengvais žingsniais Mike'as McGrathas

1 pavyzdys: praleiskite pirmąją failo eilutę naudodami NR ir operatorių „>“

Kintamasis NR nurodo įrašų skaičių faile. Ši komanda „awk“ naudoja kintamąjį NR, kad praleistų pirmąją failo eilutę. NR reikšmė yra 1 pirmoje eilutėje. Ši komanda spausdins eilutes, kurių NR vertė yra didesnė nei 1.



$katėbooklist.txt

$awk „(NE> 1)“booklist.txt

Ši išvestis bus pagaminta paleidus aukščiau pateiktas komandas. Išvestis apima visas eilutes, išskyrus pirmąją failo eilutę.







2 pavyzdys: praleiskite pirmąją eilutę naudodami NR ir „! =“ Operatorių

Ši komanda „awk“ yra panaši į ankstesnio pavyzdžio komandą. Tačiau vietoj „>“ čia naudojamas palyginimo operatorius „! =“.

$katėbooklist.txt

$awk 'NR! = 1'booklist.txt

Ši išvestis bus pagaminta paleidus aukščiau pateiktas komandas. Išvestyje rodomos visos eilutės, išskyrus pirmąją failo eilutę.



3 pavyzdys: praleiskite pirmąją failo eilutę naudodami sąlyginį teiginį

Ši „awk“ komanda išspausdins failo eilutes, jei teiginys yra teisingas. Čia teiginys if bus teisingas tik tada, kai NR reikšmė nėra lygi 1.

$katėbooklist.txt

$awk '{if (NR! = 1) {print}}'booklist.txt

Ši išvestis bus pagaminta paleidus aukščiau pateiktas komandas. Išvestis apima visas eilutes, išskyrus pirmąją failo eilutę.

4 pavyzdys: Iš failo išspausdinkite knygų pavadinimus, bet praleiskite pirmąją eilutę

Šiame pavyzdyje naudojamos dvi komandos „awk“, kad būtų spausdinami visų knygų pavadinimai, išskyrus pirmąjį. Komanda „awk“ nuskaitys pirmąjį failo stulpelį pagal laukų skyriklį ( t) ir išsiųs išvestį į antrąją komandą „awk“. Antroji „awk“ komanda išspausdins norimą išvestį.

$katėbooklist.txt

$awk -F ' t' „{print $ 1}“booklist.txt| awk 'NR! = 1 spauda}'

Ši išvestis bus pagaminta paleidus aukščiau pateiktas komandas. Išvestyje rodomi visi knygų pavadinimai, išskyrus pirmosios knygos pavadinimus.

5 pavyzdys: suformatuokite failo turinį praleidę pirmą eilutę

Parinktis „-F“, kintamasis NR ir funkcija „printf“ naudojami šioje komandoje „awk“, kad būtų sugeneruota suformatuota išvestis praleidus pirmąją eilutę. Komanda padalins failo turinį į stulpelius pagal t, o printf spausdins pirmąjį ir antrąjį stulpelius, kai NR reikšmė bus bent 2.

$katėbooklist.txt

$awk -F ' t' 'NR> = 2 {printf' %30s %20s n ', 1 USD, 2 USD}'booklist.txt

Ši išvestis bus pagaminta paleidus aukščiau pateiktas komandas. Išvestyje rodomas suformatuotas failo turinys, išskyrus pirmąją failo eilutę.

6 pavyzdys: Atspausdinkite knygų pavadinimus praleidę pirmą eilutę naudodami NR ir NF

Ši komanda „awk“ naudoja parinktį „-F“, o NR ir NF spausdina knygų pavadinimus praleidusi pirmąją knygą. Parinktis „-F“ naudojama failų bazės turiniui atskirti t. NR naudojamas praleisti pirmąją eilutę, o NF - tik pirmajam stulpeliui spausdinti.

$katėbooklist.txt

$awk -F ' t' „NR> 1 && NF = 1“booklist.txt

Ši išvestis bus pagaminta paleidus aukščiau pateiktas komandas. Išvestis apima visus failo knygų pavadinimus, išskyrus pirmosios knygos pavadinimus.

7 pavyzdys: praleiskite pirmą eilutę, atspausdinkite suformatuotus autorių vardus

Ši komanda „awk“ naudoja parinktį „-F“ ir sąlyginį teiginį, kad būtų atspausdinti autorių vardai, praleidus pirmąją eilutę. Čia NR reikšmė naudojama sąlyga if. Čia autoriaus vardas: n n bus spausdinamas kaip pirmoji eilutė, o ne turinys iš pirmosios eilutės. Autoriaus vardai iš failo bus spausdinami pagal kitas NR reikšmes.

$katėbooklist.txt

$awk -F ' t' '{if (NR == 1) printf' nAutoriaus vardas: n n '; else printf '%s n', $ 2} 'booklist.txt

Ši išvestis bus pagaminta paleidus aukščiau pateiktas komandas. Išvestyje rodomas tekstas „Autoriaus vardas“: su nauja eilute ir spausdinami visi autorių vardai, išskyrus pirmąjį.

Išvada

Pirmąją failo eilutę galima praleisti naudojant įvairias „Linux“ komandas. Kaip parodyta šioje pamokoje, yra įvairių būdų, kaip praleisti pirmąją failo eilutę naudojant komandą „awk“. Pažymėtina, kad komandos „awk“ kintamasis NR gali būti naudojamas praleisti bet kurios failo pirmąją eilutę.