use*_*029 1 bash sed awk text-processing
我正在 DNS 中设置一个恶意软件区域文件,它将所有主机指向一个特定的 IP。该文件只是一个主机名列表。这就是我现在所拥有的:
googlle.in
greensny.com
hoefra.at
hotel-sas.ru
Run Code Online (Sandbox Code Playgroud)
这就是我需要的样子:
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
Run Code Online (Sandbox Code Playgroud)
我能够将一些东西与 sed 放在一起:
sed -i 's/$/ IN A 192.168.155.128/' db.malware-host-only
Run Code Online (Sandbox Code Playgroud)
哪个有效,但它看起来像这样:
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
Run Code Online (Sandbox Code Playgroud)
如何清理它并使列之间的间距相等,以便“IN”从特定点开始,“A”和 IP 地址列的距离也相等?
只需将输出通过管道传输到column -t:
sed 's/$/ IN A 192.168.155.128/' db.malware-host-only | column -t > tmp
mv tmp db.malware-host-only
Run Code Online (Sandbox Code Playgroud)
您可以使用该-o参数来扩展列之间的空格:
column -t -o ' '
Run Code Online (Sandbox Code Playgroud)
您不能使用sed -i它,因此输出到临时文件,然后将其重命名为原始名称。