Ich habe viele Hosts-Dateien. Ich sammle sie von allen Servern und ich füge sie in host_files.txt zusammen und dann muss ich eine Hosts-Datei für alle Server erstellen.Host-Datei eine eindeutige Datei für alle Server
Ich mache diesen Befehl, um eine eindeutige Datei zu erstellen, aber einige Zeilen teilen sich dieselbe IP-Adresse oder denselben Hostnamen. ich versuche
awk '!a[$0]++' host_files.txt
Hier ist meine host_files.txt
#backup server IPs
95.23.23.56
95.23.23.57
#ftp server IPs
45.89.67.5
45.89.67.3
#apache
12.56.35.36
12.56.35.35
#ftp server IPs
95.23.23.50
#apache
12.56.35.37
I Ausgabedatei wollen, aber ich brauche
#backup server IPs <= comment line, i need to keep them
95.23.23.56
95.23.23.57
#ftp server IPs <= comment line, i need to keep them
45.89.67.5
45.89.67.3
95.23.23.50
#apache <= comment line, i need to keep them
12.56.35.36
12.56.35.35
12.56.35.37
die Kommentarzeile halten bereits:
sort -ur host_files.txt
cat host_files.txt | uniq > ok_host.txt
Ich brauche die IP ohne # nur n eed ip adresse bitte helfen Sie mir
Vielen Dank im Voraus
@ James Brown thx für Ihre Antwort, aber es funktioniert nicht für mich. Ich versuche "awk" /^#/{k=$0;next}/./{a[k][$1]=$0}END{for(k in a) {print k; für (i in a [k]) print a [k] [i]}} 'host_files.txt Ich habe folgende Fehlermeldung: Syntaxfehler Kontext ist: >>>/^ #/{k = $ 0; next} /./ {a [k] [ <<< –
Haben Sie GNU awk? –
nein ich habe nicht gnu awk –