我正在 DNS 中设置一个恶意软件区域文件,它将所有主机指向特定的 IP。该文件只是一个主机名列表。这就是我现在所拥有的:
googlle.in
greensny.com
hoefra.at
hotel-sas.ru
这就是我需要的样子:
googlle.in IN A 192.168.100.10
greensny.com IN A 192.168.100.10
hoefra.at IN A 192.168.100.10
hotel-sas.ru IN A 192.168.100.10
我能够将一些东西与 sed 组合在一起:
sed -i 's/$/ IN A 192.168.155.128/' db.malware-host-only
哪个有效,但它看起来像这样:
vururyuzeifadesi.net IN A 192.168.155.128
waseemamrohi.com IN A 192.168.155.128
weblab-srv.biz IN A 192.168.155.128
weghost.ru IN A 192.168.155.128
wnctnr.com IN A 192.168.155.128
如何清理它并使列之间的间距相等,以便“IN”从“A”的特定点开始,并且 IP 地址列之间的距离也相等?
答案1
只需将输出通过管道传输到column -t
:
sed 's/$/ IN A 192.168.155.128/' db.malware-host-only | column -t > tmp
mv tmp db.malware-host-only
您可以使用该-o
参数来扩展列之间的空格:
column -t -o ' '
您不能使用sed -i
它,因此输出到临时文件,然后将其重命名为原始名称。
答案2
awk '{ printf "%-30s%10s%10s%20s\n",$1,"IN","A","192.168.100.10"; }' file