0
votes

Comment remplacer un monde si le mot est existent autrement annexez un mot en fin de ligne à l'aide de SED

Comment remplacer un monde si le mot est existent autrement annexez un mot en fin de ligne à l'aide de SED Exemple:

cas 1: Avant de remplacer s'il existe Yzz: xxx

Après remplacer si Yzz existe xxx

Cas 2: Avant de remplacer s'il n'existe pas Yzz xxx

après remplacer xxx


2 commentaires

Voulez-vous que cela se produise uniquement en 2e ligne?


Oui seulement en deuxième ligne


3 Réponses :


0
votes

Je préférerais le faire avec awk avec lequel vous pouvez le faire comme: xxx

La première condition vérifie si le nom est présent, remplace et imprime, et saute plus d'actions pour cette ligne. La condition suivante vérifie si la ligne se termine par nom est et si vous l'imprime et ajoute remplacement . Enfin, toutes les autres lignes sont imprimées.

avec (GNU) SED Vous pouvez essayer quelque chose comme: xxx

mais c'est juste Un "hack" rapide: par défaut n'imprime rien ( -n ), mais si la ligne ne correspond pas à mon père que d'imprimer, sinon vérifier si Nom est présent à la ligne et remplace ceci ou s'il n'a pas été présent ajouté ajoute le remplacéName .


0 commentaires

0
votes

Vous pouvez utiliser ce awk qui fonctionnera pour les deux cas: xxx


0 commentaires

0
votes

Vous pouvez le faire comme ceci:

$ echo "$response" | sed -E "3 s/(.*)( [a-zA-Z]+ *$)/\1 DUDETRUSTME/g"

my name is xyz
    my father name is DUDETRUSTME
    i live at wert


1 commentaires

Imo il remplacera ^ mon père nom est $ avec mon nom de père DUDETRUSTME . De plus, dans ce cas, le drapeau de fin de code g n'est pas nécessaire.