Remplacement des caractères spécifiques dans la première colonne de texte
J'ai un fichier texte et je suis en train de remplacer un caractère spécifique (.) dans la première colonne à un autre personnage (-). Chaque champ est délimité par des virgules. Certaines des lignes les 3 dernières colonnes de vide, de sorte qu'ils ont 3 virgules à la fin.
Exemple de fichier texte:
abc.def.ghi,123.4561.789,ABC,DEF,GHI
abc.def.ghq,124.4562.789,ABC,DEF,GHI
abc.def.ghw,125.4563.789,ABC,DEF,GHI
abc.def.ghe,126.4564.789,,,
abc.def.ghr,127.4565.789,,,
Ce que j'ai essayé a l'aide de awk pour remplacer le". "dans la première colonne avec" -", puis imprimer le contenu.
ETA: Essayé sarnold de la suggestion et a la sortie je veux.
ETA2: j'ai pu avoir une plus première colonne. Est-il possible de ne changer que les 3 premiers '.' dans la première colonne à '-', donc je obtenir la sortie
abc-def-ghi-qqq.www,123.4561.789,ABC,DEF,GHI
abc-def-ghq-qqq.www,124.4562.789,ABC,DEF,GHI
abc-def-ghw-qqq.www,125.4563.789,ABC,DEF,GHI
abc-def-ghe-qqq.www,126.4564.789,,,
abc-def-ghr-qqq.www,127.4565.789,,,
OriginalL'auteur Rayne | 2012-05-02
Vous devez vous connecter pour publier un commentaire.
.
est regexp notation pour "n'importe quel caractère". Échapper avec\
et cela signifie.
:La sortie de séparateur de champ est un espace, par défaut. Ensemble
OFS = ","
pour le mettre:Cela permet encore de modification de plusieurs champs:
Je ne sais pas ce
-OFS,
ne, mais il n'est pas pris en charge option de ligne de commande; l'utiliser pour régler la sortie de séparateur de champ était une erreur de ma part. RéglageOFS
dans leawk
programme fonctionne bien.Hunh, pourquoi l'ajout de
-OFS,
effectivement changer la sortie de la deuxième colonne de trop?Hmm, je ne sais pas, mais j'ai eu la sortie que je voulais et la deuxième colonne n'a pas été changé.
Pourquoi est-ce que avec -OFS, mes $1 est l'ensemble de la ligne? Je vais maintenant essayer de changer 2$, mais ne pouvons pas faire cela.
Désolé, je ne sais pas pourquoi j'ai pensé à l'ajout de
-OFS
serait de travailler; je ne peux pas trouver le bit dans le manuel qui m'a mené en bas de ce chemin, mais si vous définissez la variable dans leawk
script lui-même, il fonctionne comme prévu.OriginalL'auteur sarnold
Cela pourrait fonctionner pour vous:
OriginalL'auteur potong