我有許多主機文件。我從所有服務器收集它們,並將它們放在host_files.txt中,然後我必須爲所有服務器創建一個主機文件。主機文件爲所有服務器創建一個唯一的文件
我做這個命令做一個獨特的文件,但有些行共享相同的IP地址或主機名。
awk '!a[$0]++' host_files.txt
這裏是我的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
我要輸出的文件,但我需要保持註釋行
#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
我已經嘗試:
sort -ur host_files.txt
cat host_files.txt | uniq > ok_host.txt
我需要ip沒有#只是n EED IP住址請幫我
在此先感謝
@詹姆斯布朗thx你的responde但它不適合我。我嘗試「awk」/^#/{k=$0;next}/./{a[k][$1]=$0}END{for(k in a){print k; for(i in a [k] )print a [k] [i]}}'host_files.txt我有這個錯誤信息:語法錯誤上下文是: >>>/^#/ {k = $ 0; next} /./ {a [k] [ <<< –
你有GNU awk嗎? –
不,我沒有gnu awk –