0
votes

Imprimez tout en bas après une fuite "========"

Comment puis-je imprimer tout en dessous après un =========== xxx

comme ça xxx

essayé avec awk '{improvable $ 0}' rs = '==' Data mais les détails ci-dessus ====== == est toujours là et avec un grand espace.


mise à jour:

donc tout est maintenant en place. Cependant, je passe du mal à concaténer le fichier. J'ai deux fichiers nommés sw_name et final_sw_name qui consiste en une variable ci-dessus et est transmis sur une variable.

Quand j'ai essayé l'a fait écho à l'aide de cette commande
écho -e "$ sw_name"> $ {sw_temp} / tp; echo -e "\ n final_sw_name >> $ {sw_temp} / tp Le $ sw_name est écho sur le fichier mais pas $ final_sw_name .

devrait être comme ceci: xxx


1 commentaires

3 Réponses :


1
votes

Vous pouvez utiliser cette commande awk : xxx

xxx


5 commentaires

BTW, est-il une façon de pouvoir grep cette partie Switchname: gbl_a_sw1 ensuite est ce awk 'p; / ^ = + $ / {p = 1} ' a essayé une combinaison différente mais je ne pouvais pas l'obtenir.


Oui, vous pouvez utiliser: awk 'p || / ^ Switchname / || p; / ^ = + $ / {p = 1} 'fichier


Donc, je devais réaliser ce qui est requis cependant quand je l'ai mis sur une variable et l'a fait écho. Ce n'est pas une impression comme prévu. Il s'agit d'impression mais pas avec la nouvelle ligne `0 3 0 0 2A0040 ID N8 en ligne FC E-Port (port de coffre, Master est Slot 3 Port 1) 1 3 1 2A0140 ID N8 Online FC E-Port 10: 00: C4: F5: 7c: 2C: 1D: D8 "GBL_A_BAS384B" (en aval) (Master Master) 2 3 2`


Le code et les données ne sont pas lisibles dans les commentaires. Mieux vous modifiez votre question et montrez vos données d'entrée avec une tentative de code.


Je ne comprends pas comment votre commande écho -e "$ sw_name"> $ {sw_temp} / tp; echo -e "\ N final_sw_name >> $ {sw_temp} / tp the $ sw_name est lié à la commande my suggérée awk .



1
votes

Essayez: xxx

Il supprime des lignes de flux dans la plage [0 .. La première ligne correspondée par REGEX ======== ] puis imprime le reste du flux normalement.


Notez que 0 La ligne de démarrage est une extension GNU qui signifie qu'il peut ne pas être disponible sur certains systèmes. Si vous souhaitez avoir un script portable, mieux utiliser l'index 1 à la place. xxx


La deuxième solution ne fonctionnera pas si les caractères < Code> ======= est dans la première ligne, cependant.

Si cela peut être le cas, vous pouvez simplement insérer une ligne vide au début du flux. < / p> xxx


3 commentaires

Notez que 0 comme une adresse est une extension GNU sed.


Pas cela ne fonctionnera pas si le match est sur la première ligne; Je voulais dire plus que vous devriez probablement souligner que c'est une extension GNU.


@Benjaminw. Cette solution a plus compliqué que ce que j'ai voulu. Quoi qu'il en soit, j'espère que tout va bien maintenant.



0
votes

Essayez xxx


1 commentaires

Définir RS une expression régulière étendue est une extension de GNU AWK. Selon POSIX, RS n'est qu'un seul caractère.