AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • Início
  • system&network
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • Início
  • system&network
    • Recentes
    • Highest score
    • tags
  • Ubuntu
    • Recentes
    • Highest score
    • tags
  • Unix
    • Recentes
    • tags
  • DBA
    • Recentes
    • tags
  • Computer
    • Recentes
    • tags
  • Coding
    • Recentes
    • tags
Início / server / Perguntas / 966624
Accepted
Gerald Schneider
Gerald Schneider
Asked: 2019-05-10 11:49:46 +0800 CST2019-05-10 11:49:46 +0800 CST 2019-05-10 11:49:46 +0800 CST

grep excluir padrão de várias linhas

  • 772

A pesquisa de padrões de várias linhas em arquivos com grep é trivial . Invertendo esse padrão nem tanto.

Background: Eu quero criar arquivos de variáveis ​​limpos sem senhas para que eu possa enviá-los para um repositório.

Exemplo de arquivo de variável contendo uma senha criptografada:

ansible_user: rick
ansible_become_password: !vault |
        $ANSIBLE_VAULT;1.1;AES256
        35623732646263636163383738353230626565383533626261313564383832643334363632383134
        3833316539376436333462303564636236646662376535300a356631346166626632333365353465
        30343138313363666434343938393464343861666234633434383037393230633333333364383835
        3962383339373731610a316362326239386539633638646331636633333330633231383730323634
        33653332353239353662366631373037653135303163663365633532643535663933
never: 'gonna,give,you,up'

Resultado pretendido:

ansible_user: rick
never: 'gonna,give,you,up'

Eu posso facilmente combinar as linhas que contêm as senhas com este comando:

grep -Pz '.+\: !vault \|(\n\s+.+){2,}' host_vars/host.yml

O problema: O parâmetro -v, que normalmente inverte o resultado, não funciona com-P

Como posso criar uma cópia dos arquivos variáveis ​​sem as linhas de senha?

ansible
  • 2 2 respostas
  • 578 Views

2 respostas

  • Voted
  1. Some Linux Nerd
    2019-05-10T12:04:42+08:002019-05-10T12:04:42+08:00

    É hackish porque não funcionaria se você tiver outras variáveis ​​​​de várias linhas, mas neste caso:

    grep -v -e password -e '^\s'
    

    Portanto, apenas pularia qualquer coisa que começasse com espaço em branco. Se você quiser uma solução mais elegante, eu usaria um programa de linha de comando para lidar com arquivos yaml e ver se você pode excluir valores. Lidar com arquivos yaml usando o cli é abordado em detalhes em outras postagens neste site: https://stackoverflow.com/questions/5014632/how-can-i-parse-a-yaml-file-from-a-linux- script de shell

    • 0
  2. Best Answer
    Gerald Schneider
    2019-05-17T02:30:01+08:002019-05-17T02:30:01+08:00

    Eu consegui funcionar usando pcregrep:

    pcregrep -vM "\!vault.+\n(\s{4,}.+\n){2,}" host_vars/host.yml
    

    Mas isso requer a instalação do pcregrep, que pelo menos no Ubuntu não é padrão. Portanto, ainda estou aberto para melhores sugestões.

    • 0

relate perguntas

  • Tarefas Ansible Recorrentes

  • Não é possível formar um link de um arquivo que está em sites disponíveis para um diretório habilitado para sites no servidor remoto usando ansible?

  • como executar um determinado papel do ansible?

  • Ansible e rbash

Sidebar

Stats

  • Perguntas 205573
  • respostas 270741
  • best respostas 135370
  • utilizador 68524
  • Highest score
  • respostas
  • Marko Smith

    Você pode passar usuário/passar para autenticação básica HTTP em parâmetros de URL?

    • 5 respostas
  • Marko Smith

    Ping uma porta específica

    • 18 respostas
  • Marko Smith

    Verifique se a porta está aberta ou fechada em um servidor Linux?

    • 7 respostas
  • Marko Smith

    Como automatizar o login SSH com senha?

    • 10 respostas
  • Marko Smith

    Como posso dizer ao Git para Windows onde encontrar minha chave RSA privada?

    • 30 respostas
  • Marko Smith

    Qual é o nome de usuário/senha de superusuário padrão para postgres após uma nova instalação?

    • 5 respostas
  • Marko Smith

    Qual porta o SFTP usa?

    • 6 respostas
  • Marko Smith

    Linha de comando para listar usuários em um grupo do Windows Active Directory?

    • 9 respostas
  • Marko Smith

    O que é um arquivo Pem e como ele difere de outros formatos de arquivo de chave gerada pelo OpenSSL?

    • 3 respostas
  • Marko Smith

    Como determinar se uma variável bash está vazia?

    • 15 respostas
  • Martin Hope
    Davie Ping uma porta específica 2009-10-09 01:57:50 +0800 CST
  • Martin Hope
    kernel O scp pode copiar diretórios recursivamente? 2011-04-29 20:24:45 +0800 CST
  • Martin Hope
    Robert ssh retorna "Proprietário incorreto ou permissões em ~/.ssh/config" 2011-03-30 10:15:48 +0800 CST
  • Martin Hope
    Eonil Como automatizar o login SSH com senha? 2011-03-02 03:07:12 +0800 CST
  • Martin Hope
    gunwin Como lidar com um servidor comprometido? 2011-01-03 13:31:27 +0800 CST
  • Martin Hope
    Tom Feiner Como posso classificar a saída du -h por tamanho 2009-02-26 05:42:42 +0800 CST
  • Martin Hope
    Noah Goodrich O que é um arquivo Pem e como ele difere de outros formatos de arquivo de chave gerada pelo OpenSSL? 2009-05-19 18:24:42 +0800 CST
  • Martin Hope
    Brent Como determinar se uma variável bash está vazia? 2009-05-13 09:54:48 +0800 CST

Hot tag

linux nginx windows networking ubuntu domain-name-system amazon-web-services active-directory apache-2.4 ssh

Explore

  • Início
  • Perguntas
    • Recentes
    • Highest score
  • tag
  • help

Footer

AskOverflow.Dev

About Us

  • About Us
  • Contact Us

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve