L'une des tâches qui peuvent être effectuées à l'aide d'un script de shell bash consiste à lire les données d'un fichier texte et à les traiter. Dans cet article, nous examinerons comment lire une colonne spécifique de données à partir d'un fichier texte ou comment lire plusieurs colonnes à partir d'un fichier texte dans un script shell bash.
Comment lire les données de la colonne à partir d'un fichier texte dans un script shell bash
Lire des colonnes spécifiques de données d'un fichier texte dans un script shell bash est utile dans diverses applications comme dans les tâches répétitives automatisées, le développement de logiciels, la gestion du texte et bien plus encore, tout ce que vous avez à faire est de simplement lire cette colonne respective. Pour plus d'illustration ci-dessous la syntaxe que l'on peut suivre pour lire n'importe quelle colonne à partir de n'importe quel fichier texte:
#!/ bac / bash
en lisant la ligne; faire
# Utilisez awk pour extraire le troisième champ (le nom) de chaque ligne= $ (echo $ line | awk 'print $')
# Imprimez le nom
Echo $
fait <.SMS
1: Le script commence par spécifier l'interprète de shell à utiliser avec la ligne Shebang #!/ bac / bash.
2: La boucle while lit le contenu du fichier texte ligne par ligne, en utilisant la commande de lecture et pour chaque ligne qui est lue, le awk La commande est utilisée pour extraire le champ (le nom) de la ligne. La commande awk utilise le motif print $ Pour sélectionner le champ, qui est ensuite stocké dans le nom de la variable.
3: Enfin, le script imprime la valeur de la variable de nom à l'aide de la commande echo et ce processus est répété pour chaque ligne du fichier jusqu'à ce qu'il n'y ait plus de lignes à lire.
Pour la compréhension des lecteurs, j'ai utilisé la syntaxe donnée ci-dessus pour lire une colonne à partir du fichier texte et ci-dessous est le code pour celui-ci:
#!/ bac / bash
en lisant la ligne; faire
# Utilisez AWK pour extraire le deuxième champ de chaque ligne
info = $ (echo $ line | awk 'print $ 3')
# Imprimez l'âge
Echo $ info
fait < company_details.txt
Ici, dans le code, j'ai lu la troisième colonne de chaque ligne du fichier texte nommé Détails de l'entreprise, la commande awk est utilisée pour extraire le troisième champ (le nom) de la ligne. La commande awk utilise le motif print $ 3 pour sélectionner le troisième champ, voici la sortie de mon exemple de code:
Vous trouverez ci-dessous le fichier texte que j'ai créé à des fins de démonstration:
Comment lire plusieurs colonnes d'un fichier texte dans Bash Shell Script
Si vous souhaitez lire plus d'une colonne ou d'un fichier, alors tout ce dont vous avez besoin pour ajouter le numéro de colonne et le reste est le même, alors voici le code pour lire plus d'une colonne du fichier texte:
#!/ bac / bash
# Cette ligne spécifie que le script doit être interprété par le shell bash.
# Loop via chaque ligne du fichier
en lisant la ligne; faire
# Utilisez awk pour extraire le troisième champ (le nom) de chaque ligne
info = $ (echo $ line | awk 'print $ 1, $ 2, $ 3')
# Imprimez le nom
Echo $ info
fait < company_details.txt
Vous trouverez ci-dessous la sortie du code qui lit les trois colonnes du fichier texte:
Conclusion
Les scripts bash sont un outil polyvalent qui peut être utilisé pour automatiser diverses tâches, en particulier en ce qui concerne les systèmes basés sur UNIX. En combinant la boucle while et d'autres commandes shell, on peut facilement lire les données de colonne à partir d'un fichier texte et effectuer diverses opérations avec les données.