Scripting shell (plusieurs lines sur une seule)
Résolu
Utilisateur anonyme
-
lEprofSonDkon Messages postés 227 Statut Membre -
lEprofSonDkon Messages postés 227 Statut Membre -
Bonjour,
j'ai plusieurs lines de 127.0.0.1
root@server:~# grep -e 127.0.0.1 /etc/hosts |grep -v "#" |grep -v "0.0.0" | awk '{print $1,$2}'
127.0.0.1 localhost
127.0.0.1 localhost.localdomain
127.0.0.1 local
127.0.0.1 localhost
je voudrais que ca devienne avec une commande :
127.0.0.1 localhost localhost.localdomain local localhost
des volontaires pour m'aider?
j'ai plusieurs lines de 127.0.0.1
root@server:~# grep -e 127.0.0.1 /etc/hosts |grep -v "#" |grep -v "0.0.0" | awk '{print $1,$2}'
127.0.0.1 localhost
127.0.0.1 localhost.localdomain
127.0.0.1 local
127.0.0.1 localhost
je voudrais que ca devienne avec une commande :
127.0.0.1 localhost localhost.localdomain local localhost
des volontaires pour m'aider?
Configuration: Windows / Firefox 60.0
4 réponses
-
non, on ne pipe pas plusieurs fois
grep
pour finalement utiliserawk
!
on utilise tout de suiteawk
.
c'est un langage de script à part entière.
et, pour t'apporter une réponse cohérente, il nous faut le fichier d'origine à traiter. -
Voici une partie du fichier que je souhaite traiter.
root@server:~# grep "127.0.0.1" /etc/hosts
# There is a version of this file that uses 127.0.0.1 instead of 0.0.0.0
127.0.0.1 localhost
127.0.0.1 localhost.localdomain
127.0.0.1 local
0.0.0.0 ms127.0.0.101341.club
# This *must* be the first line: 127.0.0.1 localhost #
127.0.0.1 localhost
root@gern:~#
le fichier est trop volumineux pour etre coller ici :
root@server:~# du -sh /etc/hosts
896K /etc/hosts
root@server:~# wc -l /etc/hosts
30716 /etc/hosts
root@server:~#
j'use grep et awk simplement car je ne sais pas utiliser awk pour autre chose que sa fonction print. -
merci mais malheureusement ce n'est pas le résultat attendu.
root@server:~# awk '/127\.0\.0\.1/ && !/#/ && !/0\.0\.0/{oneLine=oneLine?oneLine" "$1" "$2:$1" "$2}END{print oneLine}' /etc/hosts
127.0.0.1 localhost 127.0.0.1 localhost.localdomain 127.0.0.1 local 127.0.0.1 localhost
instead of
127.0.0.1 localhost localhost.localdomain local localhost -
merci je dormirais moins... plus intelligent ce soir :)
root@server:~# awk '/127\.0\.0\.1/ && !/#/ && !/0\.0\.0/{oneLine=oneLine?oneLine" "$2:$1" "$2}END{print oneLine}' /etc/hosts
127.0.0.1 localhost localhost.localdomain local localhost
thx