Mac OS X Unix pour trouver remplacer en utilisant une expression régulière

C’est ma première question, excusez-moi si cela a déjà été répondu. J’ai cherché mais n’arrive pas à trouver ce que je cherche.

J’ai une énorme quantité de texte qui a été exporté à partir d’une firebase database. Pour certains contenus d’atsortingbuts, je dois trouver chaque instance d’un espace suivi d’une lettre majuscule et remplacer simplement l’espace par un point-virgule (;).

Par exemple:

First one Second one Third one Fourth one 

Devraient devenir:

 First one;Second one;Third one;Fourth one 

Utiliser Unix (Mac OS X) Ce qui suit renvoie simplement la ligne entière:

 echo "First one Second one Third one Fourth one" | grep ' [AZ]' 

Comment pourrais-je atteindre le résultat souhaité, s’il vous plaît? Toute aide ou pointeur serait très apprécié. Merci.

Utilisez sed pour une telle tâche:

 $ echo "First one Second one Third one Fourth one" | sed -Ee 's/ ([AZ])/;\1/g' First one;Second one;Third one;Fourth one 
  • -E option -E est spécifiée pour utiliser des expressions régulières étendues.

  • s/pattern/replace-ssortingng/g trouve un motif et le remplace par la chaîne de remplacement g lobalement.
  • [AZ] correspond à l’alphabet majuscule. en entourant le motif avec (..) , il peut être référencé plus tard dans replace-ssortingng.