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

관련 정보