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

copiando um conjunto de linhas em novo arquivo

Eu tenho um arquivo de texto com 100.000 linhas ou mais. Quero copiar linhas específicas do arquivo de texto para um novo arquivo usando: sed -n '1,1000p;1000q' orig-data-file > new-file No entanto, quero criar uma série de novos arqui...
10.12.2015 / 16:38
1
resposta

Use sed para editar uma linha em um arquivo com espaços no nome [duplicado]

Estou fazendo um loop por pastas, abrindo um arquivo dentro da pasta com o mesmo nome e fazendo alguma manipulação. Estou usando o sed para manipular uma linha: sed "1s/Log R Ratio/$SAMPLE.LRR/" $FILE em que $ FILE é um arquivo com m...
21.12.2015 / 06:45
1
resposta

“Não é possível realocar” ao criar um arquivo?

Estou tentando criar uma planilha de excel com base em vários arquivos em uma raiz. Eu leio arquivos linha por linha e acrescento na folha final do excel. Eu estou tentando este script de shell em arquivos pequenos e funcionou 100%, mas quand...
19.11.2015 / 09:59
2
respostas

Envolva um padrão, não alterando-o, enquanto procura insensivelmente maiúsculas e minúsculas

Desculpe se isso foi perguntado antes, mas não encontrei nada até agora. Aqui está a coisa: eu tenho uma string e um padrão, e quero cercar o padrão dentro da string com colchetes. Embora eu queira cercar o padrão, independentemente de ter...
19.11.2015 / 17:43
3
respostas

Edite um arquivo xml - Encontre uma string, em seguida, exclua um bloco de texto / Encontre uma string e insira um novo bloco de texto

Bom dia, Sou novo no UNIX, portanto, estou procurando fazer algo que possa ser feito no VB, mas não tenho a experiência necessária no UNIX. Eu tenho uma especificação xml em um compartilhamento que exige exclusão e atualizações regulares à...
10.11.2015 / 23:17
1
resposta

Exclua as linhas que começam e terminam com um dígito

Eu achei que isso era fácil, mesmo para um iniciante como eu, mas estou preso - canalizando um arquivo de texto como este: cat file1.txt | sed '/^[0-9].*[0-9]$/d' > file2.txt Esse regex captura as linhas em um editor de texto e funci...
18.11.2015 / 12:15
1
resposta

Use sed replace com o número da linha da variável

Este é o meu comando sed : while ...; do sed -r "${counter}s/^\S+ /$line /g" $in > $out; .. .. done Infelizmente este comando não está fazendo nada quando chamado de dentro de um script / loop bash. Então, pensei em verificar se as v...
28.10.2015 / 09:42
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 / 09: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 / 10:29
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 / 12:45