Número máximo de linhas / comandos de edição em um script SED?

5

Como todos sabemos, sed pode ler comandos de um ou mais arquivos de script (ou de stdin 1 ) via -f .
Isso é útil quando precisamos fazer mudanças com base em uma lista de padrões (ou números de linha), já que podemos processar as linhas e transformá-las em comandos de edição, que passamos para sed . Às vezes, a lista é enorme, então minha pergunta é

Existe um limite para o número de linhas / comandos de edição que podem ser usados em um script sed 2 ?

1: nem todas as implementações suportam isso ...
2: onde script é obtido da combinação de todos os -e script e -f script_file options

    
por don_crissti 10.11.2016 / 21:34

2 respostas

2

Uma breve olhada no código-fonte do GNU sed 4.2.2 revela muitas chamadas malloc e nenhuma constante de tamanho embutido. Então, não, não há limite - exceto sua RAM .

    
por 29.11.2016 / 22:14
2

sed no OpenBSD 6.1: RAM é o limite.

As coisas específicas que podem causar problemas (se você for persistente) são:

  1. Número excessivo de marcadores (na ordem de int , acredito).
  2. Preenchendo o espaço de espera com muitos dados (na magnitude de size_t ).
  3. Linhas de entrada muito longas (dados de entrada ou script, mas manipulam linhas até size_t length).

O script sed é compilado em uma estrutura de lista vinculada.

    
por 02.09.2017 / 17:40

Tags