0
votes

Convertir le motif correspondant en ligne

Bonjour, j'ai un fichier de contrainte.

[get_ports {rdata[*]}]

 [get_ports {wdata[*]}]

 [get_ports {axirdata[*]}]

 [get_ports {raddr[*]}]

 [get_ports {waddr[*]}]

 [get_ports en]

 [get_ports {xyz[*]}]

 [get_ports err]


3 commentaires

Pas du tout clair. Pourriez-vous s'il vous plaît doter plus de détails avec vos efforts dans votre message et laissez-nous savoir alors.


Dans les contraintes, le fichier contient [get_ports {rdata []}] [get_ports {wdata []}] [get_ports {axirdata []}] [get_ports {RADDR []} ] [get_ports {waddr []}] [get_ports fr] [get_ports {xyz []}] [get_ports err] dans une seule ligne. Je veux le diviser après chaque single [GET_PORTS NAME] en ligne unique (en premier coloumn)


Les commentaires ne sont pas destinés à poster des échantillons, comme demandé avant de pouvoir modifier votre message avec des balises de code.


4 Réponses :


1
votes

avec un SED qui comprend \ n code> comme signification une nouvelle ligne code>: xxx pré>

avec n'importe quel SED: P>

awk '{gsub(/] *\[/,"]\n[")}1' file


0 commentaires

1
votes

Bien que ce ne soit pas clair, on dirait que vous voulez convertir des lignes en une seule à la ligne.

[get_ports {rdata[*]}]
[get_ports {wdata[*]}]
[get_ports {axirdata[*]}]
[get_ports {raddr[*]}]
[get_ports {waddr[*]}]
[get_ports en]
[get_ports {xyz[*]}]
[get_ports err]


4 commentaires

@Vishal Patel, pourriez-vous les essayer et laissez-moi savoir alors?


Salut Ravinder, ça marche bien. Merci. Pouvez-vous l'expliquer?


@Oguzismail, bien sûr, merci de me faire savoir, j'étais très prudent, donc pris deux parenthèses, j'ai également ajouté cette solution maintenant dans mon poste, merci.


@VishaLpatel, c'est comme si je suis simplement en remplaçant toutes les occurrences de ] [ avec ] ou (nouvelle ligne) [.



0
votes

assurer aucun espace dans la chaîne suivant 'get_ports' xxx


0 commentaires

0
votes

Ceci pourrait fonctionner pour vous (GNU SED):

 sed 's/ \+\(\[get_ports\)/\n\1/g' file


0 commentaires