Estou trabalhando no processo de documentação de pós-instalação do Unix, tenho um arquivo CSV a ser preenchido e enviado para cada nova compilação, para garantir que os servidores sejam criados de acordo com a solicitação original.
O arquivo CSV já terá algum conteúdo, agora preciso redirecionar a saída do comando Unix para uma linha e uma coluna específicas nesse arquivo CSV. Existe uma maneira de conseguir isso?
Conteúdo do arquivo CSV existente:
noarquivoCSVacimaeutenhoqueadicionarasinformaçõesdoservidorqueésupostoseralgumtipodescriptdeshelldacolunaG13.
Eujácrieioscript,masissoestácriandoumnovoCSVenãoumalinhaoucolunaespecífica.Nãotenhocertezaexatamentecomoredirecionarasaídadocomandoparaarespectivacolunaelinha.
Script:
echo-e"$(cat /etc/redhat-release | cut -d ' ' -f1-5)" >> /tmp/test.csv
echo -e "$(cat /etc/redhat-release | awk '{ print $7 }')" >> /tmp/test.csv
echo -e "$(uname -r)" >> /tmp/test.csv
echo -e "$(dmidecode | grep Product | head -n 1 | cut -d: -f 2)" >> /tmp/test.csv
echo -e "$(grep -c processor /proc/cpuinfo)" >> /tmp/test.csv
echo -e "$(getconf -a | grep PAGES | awk 'BEGIN {total = 1} {if (NR == 1 || NR == 3) total *=$NF} END {print total / 1024" kB"}')" >> /tmp/test.csv
echo -e "$(fdisk -l | grep Disk | grep -i gb | grep -v mapper)" >> /tmp/test.csv
echo -e "" >> /tmp/test.csv
echo -e "$(swapon -s | grep dev | cut -d' ' -f1)" >> /tmp/test.csv
echo -e "$(swapon -s | grep dev | awk '{ print $3 }')" >> /tmp/test.csv
echo -e "$(hostname -i)" >> /tmp/test.csv
echo -e "$(/sbin/ifconfig eth0 | grep 'inet addr:' | cut -d: -f4)" >> /tmp/test.csv
echo -e "$(route -n|grep "UG"|grep -v "UGH"|cut -f 10 -d " ")" >> /tmp/test.csv
Eu incluí o arquivo csv de amostra que eu preenchi manualmente,
qualquer orientação e ajuda será muito apreciada.
Editado:
The CSV file is constant and the Values always redirect to same row and column.
Tags awk sed csv shell shell-script