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 TelefonJonathon 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.
$ 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.