sed / awk manipulação de dados de arquivos

0

Eu tenho muitos arquivos de texto com os seguintes dígitos:

12 some text here
some text here
some text here

Ou às vezes assim:

123 text here

some more not-so-interesting text here

some text here

even more not-so-interesting text here

E eu preciso que eles apareçam assim:

12

some text here
some text here
some text here

Isso é possível usando sed ou awk ou alguma ferramenta de linha de comando? Eu só preciso que os dígitos estejam em uma nova linha, isolados do outro texto na linha.

    
por user321697 19.11.2018 / 11:28

1 resposta

2

Lembre-se do número e substitua o espaço após ele por uma nova linha:

sed 's/^\([0-9][0-9]*\) /\n/'

Se o seu sed oferecer suporte, você poderá usar uma regex estendida para melhorar a legibilidade:

sed -E 's/^([0-9]+) /\n/'
  • [0-9] corresponde a um dígito
  • * significa "zero ou mais vezes"
  • + significa "pelo menos uma vez"
  • \(...\) ou (...) criam um "grupo de captura", o primeiro grupo de captura pode ser referenciado como , etc.
  • \n representa uma nova linha
por 19.11.2018 / 11:41