J'apprends à utiliser sed et une exigence hypothétique:Comment remplacer plusieurs lignes vides intermédiaires avec seulement 1 ligne vide chaque
bash$ cat states
California
Massachusetts
Arizona
Wisconsin
je voudrais la sortie: (En fait, je ne veux qu'une seule ligne vide entre)
California
Massachusetts
Arizona
Wisconsin
S'il vous plaît suggérer des façons de le faire avec sed. Faut-il utiliser concept d'espace modèle multiligne etc.
Merci,
Jagrati
En réponse à l'un des commentaires, Ok, j'ai couru quelques scripts de test, et je me suis trompé avec hypopthèse que les critères de sélection d'espace d'adresse est appliquée une seule fois. Il semble être activé encore et encore.
bash$ cat file
a
b
c
a
b
c
bash$ sed -e '/a/,/b/s/$/x/g' file
ax
bx
c
ax
bx
c
J'avais l'impression qu'il produirait:
ax
bx
c
a
b
c
Alors Quelqu'un pourrait-il s'il vous plaît expliquer comment le produit sed en cas séparés par des virgules des espaces d'adressage.
Sed traite le fichier dans une boucle. Les adresses Regex ne sont pas des positions absolues dans un fichier. Chaque ligne est évaluée pour voir si elle se situe dans une plage d'adresses regex.Une fois la fin d'une plage atteinte, le test du début de la plage regex reprend. –