Sobre sua pergunta sobre a linha de comando do terminal Linux. A resposta é: ele pode lidar com strings muito maiores, que são muito dependentes da quantidade de RAM livre que você tem. Por exemplo. Na linha de comando, corri apenas printf '%s'
com uma string de 20.000.000 bytes; não teve problemas. Eu também o executei através de sed.exe
(em um ambiente Linux wine ); isso funcionou bem, também ... Seja qual for o limite da linha de comando, também depende de qual programa o que você está alimentando, cadeias tão grandes podem manipular como seu tamanho máximo de entrada de comando.
Mas é uma situação incomum / estranha em que você desejaria passar strings tão grandes para um programa, porque em algum momento você atingirá o máximo.
Com sed
e strings tão grandes, você pode fazer uma destas duas coisas:
-
Grave seus dados em um arquivo e use:
sed "s@ab/cd@AB_CD@" my_data_file
-
pipe (|) a saída de um comando para a entrada padrão do sed:
my_data_app | sed "s@ab/cd@AB_CD@"
Note que sed pode ter algum limite de comprimento de linha, mas da memória, o limite do GNU sed é bastante alto.
Além disso, em vez do padrão /
, usei @
, mas você pode usar praticamente qualquer coisa que desejar.