impression premier mot dans chaque ligne d'un fichier txt unix bash
Donc, je suis en train d'imprimer le premier mot de chaque ligne d'un fichier txt. Les mots sont séparés par un vide.
cut -c 1 txt file
C'est le code que j'ai jusqu'à présent, mais elle n'imprime que le premier caractère de chaque ligne.
Grâce
source d'informationauteur ap1993
Vous devez vous connecter pour publier un commentaire.
Pour imprimer un mot en entier, vous voulez
-f 1
pas-c 1
. Et puisque le défaut séparateur de champ est ONGLET plutôt que dans l'ESPACE, vous devez utiliser le-d
option.Pour imprimer les deux derniers mots n'est pas possible avec
cut
autant que je sache, parce qu'il ne peut plus compter que depuis le début de la ligne. Utilisationawk
à la place:vous pouvez essayer
Ce qui est intéressant à propos de cette solution est qu'il n'a pas lu au-delà de la première ligne du fichier. Même awk, qui a quelques très propre, laconique de la syntaxe, doit être explicitement dit pour arrêter la lecture après la première ligne.
read
contente de lire une ligne à la fois. En Plus, c'est un bash builtin (et un builtin dans de nombreuses coquilles), de sorte que vous n'avez pas besoin d'un nouveau processus à exécuter.Si vous souhaitez imprimer le premier mot de chaque ligne:
Mais si le fichier est volumineux alors awk ou couper à l'emporte pour la lecture de chaque ligne.
-c
est pour les personnages, vous voulez-f
pour les champs, et-d
pour indiquer votre séparateur d'espace au lieu de l'onglet par défaut: