Ajouter une colonne dans un fichier
Résolu
ulrich
-
ulrich -
ulrich -
Bonjour,
Je rencontre actuellement un problème, j'ai le fichier suivant :
Je souhaite rajouter un champ à la fin de chaque ligne avec le "$hostname", comme ceci
merci de votre aide !
Je rencontre actuellement un problème, j'ai le fichier suivant :
cat test2
myserver1.domain.test 10.10.1.12
myserver2.domain.test 10.10.1.13
Je souhaite rajouter un champ à la fin de chaque ligne avec le "$hostname", comme ceci
cat test2
myserver1.domain.test 10.10.1.12 myserver1
myserver2.domain.test 10.10.1.13 myserver2
merci de votre aide !
1 réponse
-
Salut,
$ cat fich
myserver1.domain.test 10.10.1.12
myserver2.domain.test 10.10.1.13
$ sed 's/\([^.]*\)\(\..*\)/\1\2 \1/' fich
myserver1.domain.test 10.10.1.12 myserver1
myserver2.domain.test 10.10.1.13 myserver2
Si ça fait bien ce que tu veux sur le fichier, tu rajoutes l'option "-i.bak" àsed
pour écrire directement dans le fichier :sed -i.bak 's/\([^.]*\)\(\..*\)/\1\2 \1/' fich
-
Salut,
Merci de ta réponse, en faite çà répond exactement à mon problème sauf pour quelques lignes qui ne sont pas formatées de la même manière, comme celle-ci :cat test2
10.10.1.50 myserver13-test-sup.domain.prd.trp
Merci d'avance,- Il suffit de rajouter "([[:alpha:]]" dans la 1ère regex :
$ cat fich
myserver1.domain.test 10.10.1.12
myserver2.domain.test 10.10.1.13
10.10.1.50 myserver13-test-sup.domain.prd.trp
$ sed 's/\([[:alpha:]][^.]*\)\(\..*\)/\1\2 \1/' fich
myserver1.domain.test 10.10.1.12 myserver1
myserver2.domain.test 10.10.1.13 myserver2
10.10.1.50 myserver13-test-sup.domain.prd.trp myserver13-test-sup
Bien sûr en supposant qu'aucun nom de machine ne commence par un chiffre ;-\
-