Cum să săriți prima linie a unui fișier folosind `awk`

How Skip First Line File Using Awk



Există diverse utilizări ale comenzii `awk` în Linux. De exemplu, poate fi folosit pentru a imprima conținutul unui fișier text. Prima linie a multor fișiere text conține titlul fișierului și, uneori, prima linie trebuie omisă la imprimarea conținutului fișierului. În acest tutorial, vă vom arăta cum să realizați această sarcină utilizând comanda `awk`.

Creați un fișier text

Pentru a urma împreună cu acest tutorial, creați un fișier text delimitat de file numit booklist.txt cu următorul conținut. Acest fișier conține o listă de cărți cu autorii lor corespunzători. În acest tutorial, vă vom arăta cum să imprimați diferite părți ale acestui fișier după ce ați sărit peste prima linie.







Securitatea cibernetică cu bash Paul Troncone, Carl Albing

Linia de comandă Kung Fu Jason Cannon

Linia de comandă Linux Travis Booth

Bash în pași simpli Mike McGrath

Unix în pași simpli Mike McGrath

Exemplul 1: Omiteți prima linie a unui fișier folosind NR și operatorul „>”

Variabila NR indică numărul de înregistrări dintr-un fișier. Următoarea comandă `awk` folosește variabila NR pentru a sări prima linie a unui fișier. Valoarea NR este 1 pentru prima linie. Următoarea comandă va imprima linii pentru care valoarea NR este mai mare de 1.



$pisicăbooklist.txt

$awk „(NU> 1)”booklist.txt

Următoarea ieșire va fi produsă după executarea comenzilor de mai sus. Ieșirea include toate liniile, altele decât prima linie a fișierului.







Exemplul 2: Omiteți prima linie utilizând NR și operatorul „! =”

Următoarea comandă `awk` este similară cu cea din exemplul anterior. Cu toate acestea, operatorul de comparație ‘! =’ Este folosit aici în loc de ‘>’.

$pisicăbooklist.txt

$awk „NR! = 1”booklist.txt

Următoarea ieșire va fi produsă după executarea comenzilor de mai sus. Ieșirea arată toate liniile, altele decât prima linie a fișierului.



Exemplul 3: Omiteți prima linie a unui fișier utilizând o instrucțiune condițională

Următoarea comandă `awk` va imprima liniile fișierului dacă instrucțiunea if este adevărată. Aici, afirmația if va fi adevărată numai atunci când valoarea NR nu este egală cu 1.

$pisicăbooklist.txt

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

Următoarea ieșire va fi produsă după executarea comenzilor de mai sus. Ieșirea include toate liniile, cu excepția primei linii a fișierului.

Exemplul 4: Imprimați numele cărților din fișier, dar săriți prima linie

Două comenzi „awk” sunt utilizate în acest exemplu pentru a imprima toate numele cărților, cu excepția primei. Comanda `awk` va citi prima coloană din fișier pe baza separatorului de câmp ( t) și va trimite ieșirea la a doua comandă` awk`. A doua comandă 'awk' va imprima rezultatul dorit.

$pisicăbooklist.txt

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

Următoarea ieșire va fi produsă după executarea comenzilor de mai sus. Ieșirea arată toate numele cărților, cu excepția celei din prima carte.

Exemplul 5: Formatați conținutul fișierului după ce ați omis prima linie

Opțiunea „-F”, variabila NR și funcția printf sunt utilizate în următoarea comandă „awk” pentru a genera ieșire formatată după ce ați sărit prima linie. Comanda va împărți conținutul fișierului în coloane bazate pe t, iar printf va imprima prima și a doua coloane când valoarea NR este de cel puțin 2.

$pisicăbooklist.txt

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

Următoarea ieșire va fi produsă după executarea comenzilor de mai sus. Ieșirea arată conținutul formatat al fișierului, cu excepția primei linii a fișierului.

Exemplul 6: Imprimați numele cărților după ce ați sărit prima linie folosind NR și NF

Următoarea comandă „awk” folosește opțiunea „-F” și NR și NF pentru a imprima numele cărților după ce ați sărit peste prima carte. Opțiunea ‘-F’ este utilizată pentru a separa conținutul bazei de fișiere pe t. NR este folosit pentru a sări prima linie, iar NF este utilizat pentru a imprima numai prima coloană.

$pisicăbooklist.txt

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

Următoarea ieșire va fi produsă după executarea comenzilor de mai sus. Ieșirea include toate numele cărților din fișier, cu excepția celei din prima carte.

Exemplul 7: Imprimați numele autorului formatat după ce ați omis prima linie

Următoarea comandă „awk” folosește opțiunea „-F” și o declarație condițională pentru a imprima numele autorilor după ce ați sărit peste prima linie. Aici, valoarea NR este utilizată în condiția if. Aici, numele autorului: n n va fi tipărit ca prima linie în locul conținutului din prima linie. Numele autorului din fișier vor fi tipărite pentru celelalte valori ale NR.

$pisicăbooklist.txt

$awk -F „ t” '{if (NR == 1) printf' nNume autor: n n '; altfel printf '% s n', $ 2} 'booklist.txt

Următoarea ieșire va fi produsă după executarea comenzilor de mai sus. Ieșirea arată textul, Nume autor: cu o linie nouă, iar toate numele autorilor sunt tipărite, cu excepția primei.

Concluzie

Prima linie a unui fișier poate fi omisă utilizând diverse comenzi Linux. Așa cum se arată în acest tutorial, există diferite moduri de a sări peste prima linie a unui fișier utilizând comanda `awk`. În mod vizibil, variabila NR a comenzii `awk` poate fi utilizată pentru a sări peste prima linie a oricărui fișier.