Awk

Så här skriver du ut den första kolumnen eller den sista kolumnen eller båda med 'awk'

Så här skriver du ut den första kolumnen eller den sista kolumnen eller båda med 'awk'

Linux kommando 'awk' är ett kraftfullt verktyg för olika operationer på textfiler som sök, ersätt och skriv ut. Det är lätt att använda med tabelldata eftersom det automatiskt delar upp varje rad i fält eller kolumner baserat på fältseparatorn. När du arbetar med en textfil som innehåller tabelldata och vill skriva ut data för en viss kolumn är kommandot "awk" det bästa alternativet. I denna handledning visar vi dig hur du skriver ut den första kolumnen och / eller den sista kolumnen i en rad eller textfil.

Skriv ut den första kolumnen och / eller den sista kolumnen i en kommandoutgång

Många Linux-kommandon som kommandot 'ls' genererar tabellutgångar. Här visar vi dig hur du skriver ut den första kolumnen och / eller den sista kolumnen från utdata från kommandot 'ls -l'.

Exempel 1: Skriv ut den första kolumnen i en kommandoutgång

Följande kommando "awk" skriver ut den första kolumnen från kommandot "ls -l".

$ ls -l
$ ls -l | awk 'skriv ut $ 1'

Följande utdata kommer att produceras efter att ovanstående kommandon har körts.

Exempel 2: Skriv ut den sista kolumnen i en kommandoutgång

Följande kommando 'awk' kommer att skriva ut den sista kolumnen från kommandot 'ls -l'.

$ ls -l
$ ls -l | awk 'print $ NF'

Följande utdata produceras efter att ovanstående kommandon har körts.

Exempel 3: Skriv ut den första och sista kolumnen i en kommandoutgång

Följande kommando 'awk' skriver ut den första och sista kolumnen från kommandot 'ls -l'.

$ ls -l
$ ls -l | awk 'skriv ut $ 1, $ NF'

Följande utdata kommer att produceras efter att ovanstående kommandon har körts.

Skriv ut den första kolumnen och / eller den sista kolumnen i en textfil

Här visar vi dig hur du använder kommandot 'awk' för att skriva ut den första kolumnen och / eller den sista kolumnen i en textfil.

Skapa en textfil

För att följa med denna handledning skapar du en textfil med namnet kunder.Text med följande innehåll. Filen innehåller tre typer av kunddata: namn med id, e-post och telefonnummer. Fliktecknet (\ t) används för att separera dessa värden.

Namn E-post Telefon
Jonathon Bing - 1001 [email protected] 01967456323
Micheal Jackson - 2006 [email protected] 01756235643
Janifer Lopez - 3029 [email protected] 01822347865
John Abraham - 4235 j [e-postskyddad] 01590078452
Mir Sabbir - 2756 [e-postskyddad] 01189523978

Exempel 4: Skriv ut den första kolumnen i en fil utan att använda en fältseparator

Om ingen fältseparator används i kommandot "awk" används ett mellanslag som standardfältavgränsare. Följande kommando 'awk' skriver ut den första kolumnen med standardavgränsaren.

$ kattkunder.Text
$ awk 'print $ 1' kunder.Text

Följande utdata kommer att produceras efter att ovanstående kommandon har körts. Observera att utdata endast visar kundens förnamn eftersom utrymmet används som fältseparator. Lösningen på detta problem visas i nästa exempel.

Exempel 5: Skriv ut den första kolumnen i en fil med en avgränsare

Här används \ t som fältseparator för att skriva ut den första kolumnen i filen. Alternativet '-F' används för att ställa in fältseparatorn.

$ kattkunder.Text
$ awk -F '\ t' 'print $ 1' kunder.Text

Följande utdata produceras efter att ovanstående kommandon har körts. Innehållet i filen är uppdelat i tre kolumner baserat på \ t. Därför skrivs kundens namn och id ut som den första kolumnen. Om du vill skriva ut kundens namn utan id, fortsätt sedan till nästa exempel.


Om du vill skriva ut kundens namn utan id måste du använda '-' som fältseparator. Följande kommando "awk" skriver endast ut kundens namn som den första kolumnen.

$ kattkunder.Text
$ awk -F '-' 'print $ 1' kunder.Text

Följande utdata produceras efter att ovanstående kommandon har körts. Utdata inkluderar de fullständiga namnen på kunderna utan deras id.

Exempel 6: Skriv ut den sista kolumnen i en fil

Följande kommando "awk" skriver ut den sista kolumnen med kunder.Text. Eftersom ingen fältseparator används i kommandot kommer utrymmet att användas som fältseparator.

$ kattkunder.Text
$ awk 'print $ NF' - kunder.Text

Följande utdata produceras efter att ovanstående kommandon har körts. Den sista kolumnen innehåller telefonnummer, som visas i utgången.

Exempel 7: Skriv ut den första och sista kolumnen i en fil

Följande "awk" -kommando skriver ut den första och sista kolumnen för kunder.Text. Här används flik (\ t) som fältseparator för att dela upp innehållet i kolumner. Här används flik (\ t) som en separator för utdata.

$ kattkunder.Text
$ awk -F "\ t" 'print $ 1 "\ t" $ NF' kunder.Text

Följande utdata visas efter att ovanstående kommandon har körts. Innehållet är uppdelat i tre kolumner med \ t; den första kolumnen innehåller kundens namn och id och den andra kolumnen innehåller telefonnumret. Den första och sista kolumnen skrivs ut med \ t som separator.

Slutsats

Kommandot 'awk' kan användas på olika sätt för att få den första kolumnen och / eller den sista kolumnen från valfri kommandoutgång eller från tabelldata. Det är viktigt att notera att en fältseparator krävs i kommandot, och om en inte tillhandahålls används utrymmet.

Hur man utvecklar ett spel på Linux
För ett decennium sedan skulle inte många Linux-användare förutsäga att deras favoritoperativsystem en dag skulle vara en populär spelplattform för ko...
Portar med öppen källkod för kommersiella spelmotorer
Gratis, öppen källkod och plattformsmekaniska rekreationer kan användas för att spela gamla såväl som några av de ganska senaste speltitlarna. I den h...
Bästa kommandoradsspel för Linux
Kommandoraden är inte bara din största allierade när du använder Linux, det kan också vara källan till underhållning eftersom du kan använda den för a...