1 votes

Entrer à la fin d'une ligne spécifique

J'ai le fichier .txt suivant qui suit le même schéma et je veux le modifier à l'endroit où se trouve ce fichier en ajoutant un ip :

# gfhfhgfh
gfhfghgfhgfhgfh
MACs 
# access
USER CONSOLA *,!10.249.247.3,!10.249.245.65
/bin/false

Je veux ajouter un ip à la fin de la ligne qui contient comme patron USER CONSOLE :

 USER CONSOLA *,!10.249.247.4,!10.249.245.65,!10.249.245.90,

Je ne parviens à ajouter l'ip que dans l'ensemble du document pour le moment, mais pas dans cette ligne particulière ; le code utilisé est le suivant

sed 's/\r\?$/,!10.10.11.1/' file.txt

2voto

Valentin Bajrami Points 3715

Utilisation sed vous aurez besoin de quelque chose comme ce qui suit :

sed '/USER CONSOLA/s/$/,!10.249.245.90,/' file.txt

Tout d'abord, nous allons faire correspondre le motif que nous voulons ajouter. Ensuite, nous utilisons s/$/.. ce qui signifie ajouter !10.249.245.90, jusqu'à la fin de la ligne.

En voici un autre awk solution :

awk '/USER CONSOLA/{x=x; print $0",!10.249.245.90,";next}1' file.txt

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X