Awk

Hur man hoppar över första raden i en fil med 'awk'

Hur man hoppar över första raden i en fil med 'awk'

Det finns olika användningar av kommandot 'awk' i Linux. Till exempel kan den användas för att skriva ut innehållet i en textfil. Den första raden med många textfiler innehåller filens rubrik och ibland måste den första raden hoppas över när filens innehåll skrivs ut. I den här handledningen visar vi dig hur du utför denna uppgift med kommandot 'awk'.

Skapa en textfil

För att följa upp denna handledning skapar du en tabbavgränsad textfil med namnet bok lista.Text med följande innehåll. Den här filen innehåller en lista med böcker med motsvarande författare. I den här handledningen visar vi dig hur du skriver ut olika delar av den här filen efter att du hoppat över den första raden.

Cybersäkerhet med bash Paul Troncone, Carl Albing
Kommandorad Kung Fu Jason Cannon
Linux Command Line Travis Booth
Bash i enkla steg Mike McGrath
Unix i enkla steg Mike McGrath

Exempel 1: Hoppa över den första raden i en fil med NR och operatören '>'

NR-variabeln anger antalet poster i en fil. Följande kommando 'awk' använder NR-variabeln för att hoppa över den första raden i en fil. Värdet på NR är 1 för den första raden. Följande kommando skriver ut rader för vilka NR-värdet är större än 1.

$ kattboklista.Text
$ awk '(NR> 1)' boklista.Text

Följande utdata produceras efter att ovanstående kommandon har körts. Utdata inkluderar alla andra rader än den första raden i filen.

Exempel 2: Hoppa över den första raden genom att använda NR och '!= 'operatör

Följande "awk" -kommando liknar det i föregående exempel. Men '!= 'jämförelseoperatör används här istället för'> '.

$ kattboklista.Text
$ awk 'NR!= 1 'boklista.Text

Följande utdata produceras efter att ovanstående kommandon har körts. Utgången visar alla andra rader än den första raden i filen.

Exempel 3: Hoppa över den första raden i en fil med hjälp av ett villkorligt uttalande

Följande kommando "awk" skriver ut raderna i filen om if-uttalandet är sant. Här kommer if-satsen att vara sant endast när NR-värdet inte är lika med 1.

$ kattboklista.Text
$ awk 'if (NR!= 1) boklista för print.Text

Följande utdata produceras efter att ovanstående kommandon har körts. Utdata inkluderar alla rader utom den första raden i filen.

Exempel 4: Skriv ut boknamnen från filen men hoppa över första raden

Två "awk" -kommandon används i detta exempel för att skriva ut alla boknamn utom det första. Kommandot "awk" läser den första kolumnen från filen baserat på fältseparatorn (\ t) och skickar utdata till det andra "awk" -kommandot. Det andra kommandot "awk" skriver ut önskad utgång.

$ kattboklista.Text
$ awk -F "\ t" 'skriv ut $ 1' boklista.txt | awk 'NR!= 1 print '

Följande utdata produceras efter att ovanstående kommandon har körts. Utdata visar alla boknamn utom den första bokens.

Exempel 5: Formatera filinnehållet efter att ha hoppat över den första raden

Alternativet '-F', NR-variabel och printf-funktion används i följande 'awk'-kommando för att generera formaterad utdata efter att ha hoppat över den första raden. Kommandot delar upp filinnehållet i kolumner baserat på \ t, och printf skriver ut den första och andra kolumnen när NR-värdet är minst 2.

$ kattboklista.Text
$ awk -F '\ t' 'NR> = 2 printf "% 30s% 20s \ n", $ 1, $ 2' boklista.Text

Följande utdata produceras efter att ovanstående kommandon har körts. Utdata visar det formaterade innehållet i filen, exklusive den första raden i filen.

Exempel 6: Skriv ut boknamnen efter att ha hoppat över den första raden med NR och NF

Följande kommando 'awk' använder alternativet '-F' och NR och NF för att skriva ut boknamnen efter att ha hoppat över den första boken. Alternativet '-F' används för att separera innehållet i filbasen på \ t. NR används för att hoppa över första raden och NF används för att skriva ut endast den första kolumnen.

$ kattboklista.Text
$ awk -F '\ t' 'NR> 1 && NF = 1' boklista.Text

Följande utdata produceras efter att ovanstående kommandon har körts. Utdata inkluderar alla boknamn i filen förutom den första bokens.

Exempel 7: Skriv ut de formaterade författarnamnen efter att ha hoppat över den första raden

Följande kommando 'awk' använder alternativet '-F' och ett villkorligt uttalande för att skriva ut författarnamnen efter att ha hoppat över den första raden. Här används NR-värdet i if-tillståndet. Här kommer "Författarnamn: \ n \ n" att skrivas ut som den första raden istället för innehållet från den första raden. Författarens namn från filen kommer att skrivas ut för de andra värdena för NR.

$ kattboklista.Text
$ awk -F '\ t' 'if (NR == 1) printf "\ nFörfattarnamn: \ n \ n"; annars printf "% s \ n", $ 2 boklista.Text

Följande utdata produceras efter att ovanstående kommandon har körts. Utgången visar texten ”Författarnamn:” med en ny rad och alla författarnamn skrivs ut förutom den första.

Slutsats

Den första raden i en fil kan hoppas över med hjälp av olika Linux-kommandon. Som visas i denna handledning finns det olika sätt att hoppa över den första raden i en fil med kommandot 'awk'. Noterbart kan NR-variabeln för kommandot 'awk' användas för att hoppa över den första raden i valfri fil.

Vulkan för Linux-användare
Med varje ny generation grafikkort ser vi spelutvecklare driva gränserna för grafisk trohet och komma ett steg närmare fotorealism. Men trots all kred...
OpenTTD vs Simutrans
Att skapa din egen transportsimulering kan vara rolig, avkopplande och extremt lockande. Det är därför du måste se till att du testar så många spel so...
OpenTTD-handledning
OpenTTD är ett av de mest populära affärssimuleringsspelen där ute. I det här spelet måste du skapa en underbar transportaffär. Du kommer dock att bör...