- Узнайте немного JQ, AWK и SED , Escrito Originalmente Por Dan
Каро Ново Десенволведор,
Você provavelmente estará lidando com arquivos de texto em algum mommon durante sua carreira de desenvolvimento. Estes Podem Ser Texto Simples, CSV OU JSON. ELES PODEM TER DADOS QUE VOCê Deseja Divulgar Out arquivos de log Que você deseja Examinar. Você Pode Estar Transformando de UM Formato Para Outro.
Agora, Se essa é uma ocorrência Регулярная, Convém criar um script ouga para solucionar esse Проблема (ou usar um serviço de terceiros que agregue tudo). MAS, às Vezes, Esses arquivos são únicos. OU VOCE OS USA UMA VEZ NA LUA AZUL. E Pode Demorar Um Pouco Para Escrever UM Script, Олхар Пара в роли Bibliotecas e Juntar Tudo.
Outra Alternativa é Arender Algumas das Ferramentas unix disponiveis na Линха де Командо Анкет Aqui estão três Que uscoloco Essenciais.
Este é Um Utilitário de Processamento de Linha de Múltiplos propósitos. Muitas Vezes eu Quera Pegar Linhas de um arquivo de log e descobrir o Que está acontecendo. Aqui estão algumas linhas de um arquivo de log:
54.147.20.92 - - [26/Jul/2019:20:21:04 -0600] "GET /wordpress HTTP/1.1" 301 241 "-" "Slackbot 1.0 (+https://api.slack.com/robots)" 185.24.234.106 - - [26/Jul/2019:20:20:50 -0600] "GET /wordpress/archives/date/2004/02 HTTP/1.1" 200 87872 "http://www.mooreds.com" "DuckDuckBot/1.0; (+http://duckduckgo.com/duckduckbot.html)" 185.24.234.106 - - [26/Jul/2019:20:20:50 -0600] "GET /wordpress/archives/date/2004/08 HTTP/1.1" 200 81183 "http://www.mooreds.com" "DuckDuckBot/1.0; (+http://duckduckgo.com/duckduckbot.html)"
SE Eu Quiser ver Apenas os enderços ip (supondo que todos estejam em um arquivo chamado logs.txt), Eu receararia algo como:
$ awk '{print $1}' logs.txt 54.147.20.92 185.24.234.106 185.24.234.106
E Essageem Muito Mais возможно! Você pode ver que você pode fatiar e cortar dados delimitados com bastante farcilidade. Aqui está UM ótimo artgo que mergulha ainda mais em awk .
Este é wutro utilitário de Linha de Comando. Você pode usá- LO PARA TODOS OS TIPOS DE COISAS, MAS EU O USO PRACIONALMENTE PARA PESQUISAR E Заместитель Arquivo. Suponha Que você tenha o mesmo arquivo de log, mas deseje anonimizar o endereCo Ip e o Agente do usuário. Talvez Você os envie para armazenamento a longo prazo ou alsim. Você Pode Remover Esso Farmenteme Com Alguns Comandos Sed.
$ sed 's/^[^ ]*//' logs.txt |sed 's/"[^"]*"$//' - - [26/Jul/2019:20:21:04 -0600] "GET /wordpress HTTP/1.1" 301 241 "-" - - [26/Jul/2019:20:20:50 -0600] "GET /wordpress/archives/date/2004/02 HTTP/1.1" 200 87872 "http://www.mooreds.com" - - [26/Jul/2019:20:20:50 -0600] "GET /wordpress/archives/date/2004/08 HTTP/1.1" 200 81183 "http://www.mooreds.com"
Sim, parece ummas sujeiras na linha de comando, mase ese é o poder das expressões uglares. ELES ESTãO EM TODOS OS IDIOMAS (EMBORA COM PEQUENAS variACõES) E Valem Апендер Pena. O SED FORNECE A Você O Poder de Expressões зарегистрирует Na Linha de Comando Para Processar Arquivos. NãAO Encontrei UM ótimo Tutorial Sobre Sed, Mas O Google Mostra Alguns.
SE Você trabalha na linha de comando com software moderno, você já encontrou aepensão json. É usado para arquivos de configururação e transmissão de dados. Às Vezes, você urray de json e deseja apenas escolher alguns atributos. Ferramentas Como Sed a Awk Falham Nisso, Porque São Usadas Para Novas Linhas Que Seperam Registros, Não Chaaves E Vírgulas. Claro, Você Pode USAR Expressões Regulares Para Analisar json simples e há momentos em Que eu fazo isso. MAS UMA FRERAMETA MIUTO MELHORE é O jq . Não sou tão experiente com isso Quanto com OSLOS, MAS O USO SEMPER QUE ESTOU LIDANDO COM UMA API QUE FORNECE JSON. EU POSSO Consultar API COM скручивание (Outra ótima Ferramenta) E Analisá-la Com JQ. POSSO COLOCAR TUDO ISSO EM UM SCRIPT EXERVORACOAO REPETIVEL.
FIS ISSO ALGUNS MESES ATRás, Quando Estava Explorando Um Sistema de Эластичный поиск Анкет CRIEI AS CONSULTAS COM CURL E, EM SEGUIDA, USEI O JQ PARA ANALISAR OS RESSUTADOS PARA QUE EU PUDESSE PENTENDER ISSO. SIM, ЕС PODERIA TER FEITO ISSO COM UMA LINGUAGEM DE PROGRAGATAUCão Real, Mas Levaria Mais Tempo. ЕС Тамбем Poderia ter USADO UMA Ferramenta de Interface Gráfica Como o Почтальон, Mas Não Seria Replicável.
sed a awk devem estar em todos os sistemas Que que você trabalhar; JQ Não é Padrão, Mas Fácil de instalar. Вейл Пена Гастар Алгум Темп, Коннекендо Эссас Ферраменс. Portanto, da próxima vez Que você estiver processando um arquivo de texto e preciSar emprair um pouco dele, закупайте sed awk. Da Proxima Vez Que Você Uptiver Um Arquivo Json Secalceiver estiver Olhando Para Ele, Veja JQ. ЕС ACHO QUE VOCE FICARá FELIZ COM O RESTODADO.
Atenciosamente,
Дэн
Оригинал: «https://dev.to/oieduardorabelo/linha-de-comando-aprenda-um-pouco-de-jq-awk-e-sed-47dl»