Bashで設定された間隔でテキストファイルに列を追加する

Bashで設定された間隔でテキストファイルに列を追加する

すべてのホストを特定のIPを指すマルウェアゾーンファイルをDNSに設定しています。このファイルはホスト名のリストです。これが私が今持っているものです:

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

関連情報