Pessoas, boa tarde. A dúvida é quanto a shell, mas o objetivo é resolver um problema com o SARG.
Tenho o squid atuando como proxy de uma rede mista (win+linux) e utilizo o módulo NTLM para autenticação das estações windows. Entretanto, não sei porquê algumas conexões chegam sem autenticação, sendo devidamente barradas pelo squid. Por não serem autenticadas, o nome do usuário não fica gravado no log, como o exemplo abaixo (deveria estar no primeiro "-", antes do NONE): 1196848451.093 32 192.168.0.39 TCP_DENIED/407 1921 GET http://maps.google.com/maps? - NONE/- text/html O problema é que uso o SARG para acompanhar os acessos e não quero que estas conexões sejam listadas pelo número IP e sim pelo usuário. A solução aparentemente fácil seria preencher o sarg.usertab com uma listagem dos IP das estações e seus respectivos nomes de usuário, e ser feliz. Mas não foi bem assim. Preenchendo o usertab, o sarg mistura e embaralha as informações dos usuários. Postei uma dúvida há uns 10 dias atrás na linux-board, mas sem respostas (http://br.groups.yahoo.com/group/linux-board/message/26891). Na falta da solução, testei o que pude, varrendo o google atrás de uma resposta, além do posto na lista, mas sem sucesso. Diante do problema, resolvi partir para um "recurso técnico", a popular gambiarra. Tive a idéia de criar um script (viram, não disse que a dúvida é sobre shell script) que me permtisse varrer o log do squid e trocar cada ocorrência do primeiro " - " pelo nome do usuário vinculado ao IP existente no 3.º campo do log, de acordo com uma listagem previamente cadastrada em um arquivo, como a do usertab. Sei que a solução passa pelo uso de sed e/ou awk mas, honestamente, não tenho a menor idéia de como começar. Já fiz bastante coisas em shell script mas sou totalmente newbie no uso de sed/awk. Alguém tem alguma idéia de como posso fazer isso?
