'tab' wordt gebruikt als scheidingsteken In het door tabs gescheiden bestand. Dit type tekstbestand is gemaakt om verschillende soorten tekstgegevens in een gestructureerd formaat op te slaan. Er bestaan verschillende soorten commando's in Linux om dit type bestand te ontleden. 'awk'-opdracht is een van de manieren om het door tabs gescheiden bestand op verschillende manieren te ontleden. Het gebruik van het 'awk'-commando om het door tabs gescheiden bestand te lezen, wordt in deze zelfstudie getoond.
Maak een door tabs gescheiden bestand:
Maak een tekstbestand met de naam gebruikers.tekst met de volgende inhoud om de opdrachten van deze tutorial te testen test. Dit bestand bevat de gebruikersnaam, het e-mailadres, de gebruikersnaam en het wachtwoord.
gebruikers.tekst
Naam E-mail Gebruikersnaam WachtwoordMd. Robin [e-mail beveiligd] robin89 563425
Nila Hasan [e-mail beveiligd] nila78 245667
Mirza Abbas [email protected] mirza23 534788
Aornob Hasan [e-mail beveiligd] arnob45 778473
Nuhas Ahsan [email protected] nuhas34 563452
Voorbeeld-1: druk de tweede kolom van een door tabs gescheiden bestand af met de optie -F
De volgende 'sed'-opdracht drukt de tweede kolom van een door tabs gescheiden tekstbestand af. Hier de '-F' optie wordt gebruikt om het veldscheidingsteken van het bestand te definiëren.
$ kattengebruikers.tekst$ awk -F '\t' 'print $2' gebruikers.tekst
De volgende uitvoer verschijnt na het uitvoeren van de opdrachten:. De tweede kolom van het bestand bevat de e-mailadressen van de gebruiker, die worden weergegeven als uitvoer.
Voorbeeld-2: Druk de eerste kolom van een door tabs gescheiden bestand af met behulp van de FS-variabele
De volgende 'sed'-opdracht drukt de eerste kolom van een door tabs gescheiden tekstbestand af. Hier, FS ( Veldscheidingsteken) variabele wordt gebruikt om het veldscheidingsteken van het bestand te definiëren define.
$ kattengebruikers.tekst$ awk ' print $1 ' FS='\t' gebruikers.tekst
De volgende uitvoer verschijnt na het uitvoeren van de opdrachten:. De eerste kolom van het bestand bevat de gebruikersnamen, die worden weergegeven als uitvoer as.
Voorbeeld-3: Druk de derde kolom van een door tabs gescheiden bestand af met opmaak
Met de volgende 'sed'-opdracht wordt de derde kolom van het door tabs gescheiden tekstbestand afgedrukt met opmaak met behulp van de FS variabel en printf. Hier de FS variabele wordt gebruikt om het veldscheidingsteken van het bestand te definiëren.
$ kattengebruikers.tekst$ awk 'BEGINFS="\t" printf "%10s\n", $3' gebruikers.tekst
De volgende uitvoer verschijnt na het uitvoeren van de opdrachten:. De derde kolom van het bestand bevat de gebruikersnaam die hier is afgedrukt.
Voorbeeld-4: Druk de derde en vierde kolom van het door tabs gescheiden bestand af met OFS
OFS (Output Field Separator) wordt gebruikt om een veldscheider toe te voegen aan de uitvoer. De volgende 'awk'-opdracht verdeelt de inhoud van het bestand op basis van het scheidingsteken tab(\t) en drukt de 3e en 4e kolom af met de tab(\t) als scheidingsteken.
$ kattengebruikers.tekst$ awk -F "\t" 'OFS="\t" print $3, $4 > ("output.txt")' gebruikers.tekst
$ kat uitgang.tekst
De volgende uitvoer verschijnt na het uitvoeren van de bovenstaande opdrachten:. De 3e en 4e kolom bevatten de gebruikersnaam en het wachtwoord, die hier zijn afgedrukt.
Voorbeeld-5: Vervang de specifieke inhoud van het door tabs gescheiden bestand
sub() functie wordt gebruikt in 'awk to command for vervanging'. Het volgende 'awk'-commando zoekt het nummer 45 en vervangt het nummer 90 als het zoeknummer in het bestand voorkomt. Na de vervanging wordt de inhoud van het bestand opgeslagen in de uitvoer.txt-bestand.
$ kattengebruikers.tekst$ awk -F "\t"'sub(/45/,90);print' gebruikers.txt > uitvoer.tekst
$ kat uitgang.tekst
De volgende uitvoer verschijnt na het uitvoeren van de bovenstaande opdrachten:. Het resultaat.txt-bestand toont de gewijzigde inhoud na het toepassen van de vervanging. Hier is de inhoud van de 5e regel gewijzigd en is 'arnob45' gewijzigd in 'arnob90'.
Voorbeeld-6: Tekenreeks toevoegen aan het begin van elke regel van een door tabs gescheiden bestand
In het volgende wordt het 'awk'-commando, de '-F'-optie gebruikt om de inhoud van het bestand te verdelen op basis van het tabblad (\t). OFS heeft gebruikt om een komma(,) toe te voegen als veldscheidingsteken in de uitvoer. sub() functie wordt gebruikt om de tekenreeks '-→' toe te voegen aan het begin van elke regel van de uitvoer.
$ kattengebruikers.tekst$ awk -F "\t" 'OFS=",";sub(/^/, "---->");print $1,$2,$3' gebruikers.tekst
De volgende uitvoer verschijnt na het uitvoeren van de bovenstaande opdrachten:. Elke veldwaarde wordt gescheiden door een komma(,) en er wordt een tekenreeks toegevoegd aan het begin van elke regel.
Voorbeeld-7: Vervang de waarde van een door tabs gescheiden bestand door de functie gsub() te gebruiken
gsub() functie wordt gebruikt in het 'awk' commando voor globale vervanging. Alle tekenreekswaarden van het bestand zullen vervangen waar het zoekpatroon overeenkomt. Het belangrijkste verschil tussen de functies sub() en gsub() is dat de functie sub() de vervangingstaak stopt nadat de eerste overeenkomst is gevonden, en de functie gsub() zoekt in het patroon aan het einde van het bestand naar vervanging. De volgende 'awk'-opdracht zoekt het woord 'nila' en 'Mira' globaal in het bestand en vervangt alle exemplaren door de tekst 'Ongeldige naam', waar het zoekwoord overeenkomt.
$ kattengebruikers.tekst$ awk -F '\t' 'gsub(/nila|Mira/, "Ongeldige naam"); print' gebruikers.tekst
De volgende uitvoer verschijnt na het uitvoeren van de bovenstaande opdrachten:. Het woord 'nila' komt twee keer voor in de 3e regel van het bestand dat is vervangen door het woord 'Ongeldige naam' in de uitvoer.
Voorbeeld-8: Druk de opgemaakte inhoud af van een door tabs gescheiden bestand
De volgende 'awk'-opdracht drukt de eerste en de tweede kolom van het bestand af met opmaak met behulp van printf. De uitvoer toont de naam van de gebruiker door het e-mailadres tussen haakjes te plaatsen.
$ kattengebruikers.tekst$ awk -F '\t' 'printf "%s(%s)\n", $1,$2' gebruikers.tekst
De volgende uitvoer verschijnt na het uitvoeren van de bovenstaande opdrachten:.
Conclusie
Elk door tabs gescheiden bestand kan eenvoudig worden geparseerd en afgedrukt met een ander scheidingsteken door de opdracht 'awk' te gebruiken. De manieren om door tabs gescheiden bestanden te ontleden en in verschillende formaten af te drukken, zijn in deze zelfstudie getoond aan de hand van meerdere voorbeelden. Het gebruik van de functies sub() en gsub() in de opdracht 'awk' voor het vervangen van de inhoud van het door tabs gescheiden bestand wordt ook uitgelegd in deze tutorial. Ik hoop dat deze tutorial de lezers zal helpen om het door tabs gescheiden bestand gemakkelijk te ontleden nadat ze de voorbeelden van deze tutorial goed hebben geoefend.