Como extrair texto em massa do arquivo e colá-lo em outro arquivo?

0

Ok, eu tenho alguns arquivos que contêm e-mails e senhas. Eu quero fazer um único arquivo de apenas as senhas, de todos os arquivos, sem alterar os originais. Cada linha é estruturada da seguinte forma:

[email protected]:password

(não há espaço entre o email ou a senha do cólon)

Eu estava tentando descobrir como compactar o arquivo e canalizar o texto para um novo arquivo, mas não tenho tanta certeza sobre como escrever o comando. Por favor, ajude obrigado.

    
por Evan Foulk 06.04.2018 / 05:52

2 respostas

1

Supondo que nenhum caractere de dois-pontos nos endereços de e-mail, para um monte de arquivos, vamos chamá-los de files*.txt :

cat files*.txt | sed -e 's/[^:]*://' > all-passwords.txt

Deve fazer isso.

  • cat files*.txt - imprime todas as linhas para STDOUT
  • sed -e 's/[^:]*://' - substitui tudo até o primeiro ':' na linha com "nada"
  • > all-passwords.txt - cria / sobrescreve um arquivo chamado all-passwords.txt
  • >> all-passwords.txt - Se você usasse >> , ele criaria ou anexaria apenas o arquivo, não sobrescrevendo-o.

Notas :

  • Se você tiver caracteres ':' somente nas senhas, isso ainda funcionará.
por dpb 06.04.2018 / 06:13
2

Você pode usar cut :

cut -d: -f2- file1 file2 > output
  • -d: informa cut que os campos estão separados por : e
  • -f2- informa cut para produzir todos os campos a partir do segundo.
por muru 06.04.2018 / 06:32