Perguntas sobre 'sed'

Sed é conhecido como Stream Editor, pois pode executar várias funções de filtragem e / ou transformação na entrada padrão ou em arquivos especificados pelo usuário. É comumente usado para pesquisar e substituir em arquivos de texto. Se sua pergunta for sobre processamento de texto, essa tag provavelmente será apropriada
1
resposta

Como posso corresponder uma string que tenha repetidos caracteres repetidos um certo número em um intervalo?

Eu preciso substituir todas as strings de 2 a 5 caracteres repetidos Existe uma expressão mais compacta que esta $ echo a aa aaa aaaa aaaaa aaaaaa| sed 's/a\{2\}/word/;s/a\{3\}/word/;s/a\{4\}/word/;s/a\{5\}/word/;' a word word word word a...
04.10.2016 / 12:01
2
respostas

Grep para conteúdo entre dois marcadores com novas linhas

Apenas curioso para saber se há uma maneira de mostrar a saída entre dois marcadores? Eu estava tentando grep -r "<cron_expr>.*</run>" * , mas não parece estar retornando como esperado. O que significa que não está mostrando que...
04.05.2012 / 23:39
4
respostas

Substituir string por conteúdo de arquivo de múltiplas linhas

Eu preciso substituir a string SALT em um arquivo pelo conteúdo de outro arquivo. O problema é que o arquivo de entrada possui multilinhas. Eu tentei algo assim no meu script bash: SALT='cat salt.txt'; sed "s/SALT/$SALT/" wp-config.php >...
30.03.2015 / 14:26
3
respostas

___ qstnhdr___ sed substituir texto contendo nova linha ______ qstntxt ___

Eu tenho um script bash para instalar um servidor web no meu servidor Ubuntu.

Eu gostaria, no /etc/apache2/apache2.conf, de substituir

%pre%

por

%pre%

Se eu fizer

%pre%

está funcionando, mas eu gostaria de incluir a linha em branco e o # após o #ServerRoot para evitar adicionar duas vezes ServerName se o script for executado duas vezes.

Eu tentei

%pre%

Mas não está funcionando.

    
______ azszpr491178 ___

Que tal

  1. pesquise %code%
  2. se encontrado, lido e anexado a próxima linha no espaço padrão do sed
  3. pesquise o espaço padrão anexado por uma linha vazia após a nova linha e substitua %code% por essa

Juntando isso,

%pre%

Caso a linha 'vazia' contenha espaços em branco, você pode modificá-la para

%pre%     
______ azszpr491157 ___

Por fim, a verificação em dobro de %code% funcionando em %code% com ajuda deste . Pouco de boca cheia:

%pre%

E um awk que faz o mesmo (mais longo, mas mais fácil de entender o IMO). A lógica e %code% são explicados na última seção.

%pre%

Edit: O %code% não é tão difícil quanto eu pensava que era. Você só quer combinar e anexar (o comando %code% ); você não precisa substituir. Eu testei o seguinte como trabalhando:

%pre%

Você pode ser mais específico com o seu jogo se quiser e deixarei o %code% abaixo para a posteridade.

A edição é bastante trivial com %code% , mas para escrever novamente no mesmo arquivo, precisamos de um arquivo intermediário temporário ou %code% (do %code% package). Eu vou mostrar os dois métodos.

%pre%

Ou

%pre%

O %code% está imprimindo todas as linhas encontradas, mas no caso de uma correspondência para %code% , a linha ServerName é gravada. Eu acho esse tipo de processamento muito mais fácil de ler do que "trocar" arbitrariamente com o sed.

    
______ azszpr491205 ___

Outra forma (obrigado muru) mas um pouco fora de contexto porque não usa sed:

Para o Ubuntu 14.04 :

Crie um arquivo fqdn.conf em / etc / apache2 / conf-available / contendo

%pre%

Crie um link simbólico em / etc / apache2 / conf-enabled /

%pre%     
___

Eu tenho um script bash para instalar um servidor web no meu servidor Ubuntu. Eu gostaria, no /etc/apache2/apache2.conf, de substituir #ServerRoot "/etc/apache2" # por #ServerRoot "/etc/apache2" ServerName localhost # Se eu fi...
03.07.2014 / 11:12
7
respostas

Remover pontos duplicados do nome do arquivo

Eu tenho um diretório com vários arquivos dentro dos quais foram nomeados malformados, como file..txt , file2..txt , etc ... Então, como remover facilmente este segundo . dos nomes dos arquivos? Qualquer método aplicável é apreciado...
02.07.2015 / 12:29
1
resposta

Altera uma string mantendo algum texto como ele está usando sed

Eu tenho outro problema aqui com o SED. Eu quero adicionar algum texto a uma string, mas sem alterar uma palavra específica que varia com cada linha. Ou envolva um código em uma string mantendo-o como está. Exemplo: FROM <font color="#0...
03.05.2013 / 16:23
1
resposta

Tell sed para fazer mudanças, mas aquelas que começam com uma string específica na 8ª a última linha

Aqui novamente com outro problema com sed . Como diz o título, quero que sed altere as linhas começando na oitava linha até o final, mas apenas as linhas que começam com <b> . Eu tenho código pronto e só queria acrescentar o a...
04.05.2013 / 14:45
2
respostas

Como eu uso variáveis em um comando sed?

Eu tentei o seguinte código para substituir QQ por ZZ , mas ele não faz o que eu quero: var1=QQ sed -i 's/$var1/ZZ/g' $file No entanto, esse código faz o que eu quero: sed -i 's/QQ/ZZ/g' $file Como uso variáveis em sed ?   ...
07.11.2011 / 17:30
1
resposta

Como substituir uma linha que começa com uma palavra (e usar essa linha antiga na nova linha)

Eu tenho um arquivo com muitas linhas e gostaria de substituir linhas específicas que começam com uma nova linha, mas incluem a linha antiga. Veja abaixo. por exemplo, se uma linha começa com (xyz é diferente para cada linha) "#EXT-1,xyz"...
03.09.2016 / 18:53
4
respostas

Substituir espaços em uma substring combinada por sublinhados

Sou novo no fórum, por favor, perdoe quaisquer erros sintáticos na minha pergunta. Estou tentando substituir espaços por sublinhados apenas em uma substring correspondente. Eu imaginei que sed seria o melhor editor para isso, mas não consigo...
02.03.2016 / 11:52