En av oppgavene som kan utføres ved hjelp av et bash shell -skript er å lese data fra en tekstfil og behandle dem. I denne artikkelen vil vi se på hvordan du kan lese en spesifikk kolonne med data fra en tekstfil eller hvordan du kan lese flere kolonner fra en tekstfil i et bash shell -skript.
Hvordan lese kolonnedata fra en tekstfil i et bash shell -skript
Å lese spesifikke kolonner med data fra en tekstfil i et bash shell -skript er godt med i forskjellige applikasjoner som i automatiserte repeterende oppgaver, programvareutvikling, tekststyring og mye mer, alt du trenger å gjøre er å bare lese den respektive kolonnen. For ytterligere illustrasjon under syntaksen som man kan følge for å lese hvilken som helst kolonne fra hvilken som helst tekstfil:
#!/bin/bash
mens du leser linjen; gjøre
# Bruk AWK for å trekke ut det tredje feltet (navnet) fra hver linje= $ (Echo $ line | awk 'print $')
# Skriv ut navnet
ekko $
Ferdig <.tekst
1: Skriptet starter med å spesifisere skalltolk som skal brukes med Shebang -linjen #!/bin/bash.
2: Mens Loop leser innholdet i tekstfillinjen for linje, ved hjelp av lesekommandoen og for hver linje som leses, awk Kommando brukes til å trekke ut feltet (navnet) fra linjen. AWK -kommandoen bruker mønsteret Skriv ut $ For å velge feltet, som deretter lagres i variabelnavnet.
3: Til slutt skriver skriptet ut verdien til navnevariabelen ved hjelp av Echo -kommandoen, og denne prosessen gjentas for hver linje i filen til det ikke er flere linjer å lese.
For leserforståelse har jeg brukt ovennevnte syntaks for å lese en kolonne fra tekstfilen, og nedenfor er koden for den:
#!/bin/bash
mens du leser linjen; gjøre
# Bruk AWK for å trekke ut det andre feltet fra hver linje
info = $ (ekko $ linje | awk 'skriv ut $ 3')
# Skriv ut alderen
ekko $ info
Ferdig < company_details.txt
Her i koden har jeg lest den tredje kolonnen i hver linje i tekstfilen som heter firmadetaljer, AWK -kommandoen brukes til å trekke ut det tredje feltet (navnet) fra linjen. AWK -kommandoen bruker mønsteret Skriv ut $ 3 For å velge det tredje feltet, her er utdataene fra eksempelkoden min:
Nedenfor er tekstfilen som jeg opprettet for demonstrasjonsformål:
Hvordan lese flere kolonner i en tekstfil i bash shell -skript
Hvis du vil lese mer enn en kolonne eller en fil, så trenger du alt du trenger for å legge til kolonnenummeret, og resten er det samme, så her er koden for å lese mer enn en kolonne i tekstfilen:
#!/bin/bash
# Denne linjen spesifiserer at skriptet skal tolkes av bash -skallet.
# sløyfe gjennom hver linje i filen
mens du leser linjen; gjøre
# Bruk AWK for å trekke ut det tredje feltet (navnet) fra hver linje
info = $ (ekko $ linje | awk 'skriv ut $ 1, $ 2, $ 3')
# Skriv ut navnet
ekko $ info
Ferdig < company_details.txt
Nedenfor er utdataene fra koden som leser alle de tre kolonnene i tekstfilen:
Konklusjon
Bash-skriptene er et allsidig verktøy som kan brukes til å automatisere forskjellige oppgaver, spesielt når det gjelder UNIX-baserte systemer. Ved å kombinere mens Loop og andre Shell -kommandoer kan man enkelt lese kolonnedata fra en tekstfil og utføre forskjellige operasjoner med dataene.