Tout caractère ou chaîne peut être remplacé en utilisant la commande 'sed'. Parfois, nous devons remplacer le caractère Newline (\ n) dans un fichier par une virgule. Dans cet article, nous utilisons la commande 'SED' pour remplacer \ n par une virgule.
Utiliser «sed» pour remplacer \ n par une virgule
De nombreux problèmes peuvent survenir lors du remplacement de \ n par une virgule. Par défaut, chaque ligne se termine par \ n lors de la création d'un fichier. La commande 'SED' peut facilement se séparer sur \ n et remplacer la nouvelle ligne par n'importe quel caractère. Un autre délimiteur peut être utilisé à la place de \ n, mais uniquement lorsque GNU SED est utilisé. Lorsque le \ n est manquant dans la dernière ligne du fichier, GNU SED peut éviter d'imprimer \ n. De plus, \ n est généralement ajouté à chaque sortie consécutive de «SED».
Créer un fichier
Dans cet article, nous vous montrerons comment utiliser la commande 'sed' pour remplacer \ n par une virgule. Pour suivre ce tutoriel, créez un fichier texte nommé Clients.SMS avec les informations du client tabulaire suivantes.
IDENTIFIANT | Nom | Téléphone | |
---|---|---|---|
C01 | Maryland. Rakib | rakib @ gmail.com | 01856233238 |
C02 | Meher Afroze | meher @ gmail.com | 01733536342 |
C03 | Fakrul Ahsan | fakrul @ gmail.com | 01934737248 |
C04 | Helal Uddin | Helal @ Yahoo.com | 01534895898 |
C05 | Nusrat Jahan | nusrat @ hotmail.com | 01866345254 |
Exemple 1: Remplacer \ n par une virgule utilisant -Z
L'option -z est utilisée pour convertir \ n au caractère nul (\ 0). Le contenu du fichier est traité comme une seule ligne s'il ne contient aucun caractères nuls. La commande 'sed' convertira la nouvelle ligne en caractère nul et remplacera chaque \ n par une virgule en utilisant le premier modèle de recherche et de remplacement. Ici, «g» est utilisé pour rechercher à l'échelle mondiale \ n. Avec le deuxième modèle de recherche et de remplacement, la dernière virgule sera remplacée par \ n.
$ CLIENTS CAT.SMS
$ sed -z 's / \ n /, / g; s /, $ / \ n /' clients.SMS
La sortie suivante sera produite après l'exécution des commandes.
Exemple 2: Remplacez \ n par une virgule en utilisant A, B, $! et n
La commande 'SED' peut être utilisée pour remplacer \ n par une virgule en utilisant A, B, N et $!. Ici, un est utilisé pour ajouter les tâches, b est utilisé pour ramifier le contenu, N est utilisé pour aller à la ligne suivante, et $! est utilisé pour empêcher l'application de la tâche de remplacement à la dernière ligne. La commande remplacera chaque \ n avec une virgule sauf la dernière ligne.
$ CLIENTS CAT.SMS
$ sed ': a; n; $!Ba; s / \ n /, / g 'clients.SMS
La sortie suivante sera produite après l'exécution des commandes.
Exemple 3: Remplacez \ n par une virgule utilisant H, H, D, X et Y
Si vous voulez remplacer \ n) Avec une virgule dans un petit fichier, la commande «SED» suivante peut être utilisée. Ici, H est utilisé pour ajouter la dernière ligne au texte de maintien, 1h est utilisé pour copier chaque ligne du fichier au texte de maintien de la première ligne, $!d est utilisé pour supprimer toutes les lignes sauf la dernière ligne, X est utilisé pour échanger le texte de maintien et l'espace de motif, et y est utilisé pour remplacer chaque \ n dans le texte de maintien avec une virgule.
$ CLIENTS CAT.SMS
$ sed 'h; 1h; $!D; x; y / \ n /, 'clients.SMS
La sortie suivante sera produite après l'exécution des commandes.
Exemple 4: Remplacez \ n par une virgule utilisant -n, H, H, G et P
La commande «SED» peut être utilisée pour remplacer \ n avec une virgule avec -n option, qui empêche l'impression automatique. Comme dans l'exemple précédent, H est utilisé ici pour ajouter la dernière ligne au texte de maintien, 1h est utilisé pour copier chaque ligne du fichier dans le texte de maintien, $ se réfère à la dernière ligne du fichier, g est utilisé pour copier à partir du texte de maintien, et p est utilisé pour imprimer.
$ CLIENTS CAT.SMS
$ sed -n "h; 1h; \ $ g; s / \ n /, / g; p" clients.SMS
La sortie suivante sera produite après l'exécution des commandes ci-dessus.
Exemple 5: Remplacer \ n par une virgule utilisant H, X, P
H, X et P ont été expliqués dans des exemples précédents. La première expression de recherche et de remplacement remplacera chaque \ n avec une virgule, et la deuxième recherche et remplacer l'expression remplacera une virgule au début d'une ligne par un espace.
$ CLIENTS CAT.SMS
$ sed -n 'h; $ x; s / \ n /, / g; s / ^, //; p;' les clients.SMS
La sortie suivante sera produite après l'exécution des commandes ci-dessus.
Exemple 6: Remplacez \ n par une virgule utilisant n et «chat»
La commande 'cat' est utilisée ici pour envoyer le contenu du fichier à la commande 'sed', et N est utilisé pour passer à la ligne suivante.
$ CLIENTS CAT.SMS
$ CLIENTS CAT.txt | sed 'n; s / \ n /, /'
La sortie suivante sera produite après l'exécution des commandes ci-dessus.
Conclusion
Il peut être nécessaire de remplacer \ n par une virgule pour transférer les données d'un format de fichier à un autre. Ce type de remplacement peut également être effectué en utilisant d'autres commandes Linux. De nombreuses options de commande, telles que H, N, H et X, peuvent être utilisées avec la commande «SED» pour terminer cette tâche. Ce tutoriel dépasse plusieurs façons d'utiliser la commande 'SED' pour remplacer \ n par une virgule.