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 / 10: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 / 21: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 / 12:26
3
respostas

___ qstnhdr___sat substitua todas as guias e espaços por um único espaço ______ qstntxt ___

Eu tenho uma string como esta:

%pre%

agora quero substituir todas as guias / espaços entre os registros por um único espaço, para que eu possa usá-lo facilmente com %code%

Eu tentei o seguinte:

%pre%

e várias varões, mas não conseguiram fazê-lo funcionar. Alguma idéia?

    
______ azszpr431168 ___

Use %code%

Aqui está uma explicação:

%pre%

Para sua substituição, você só deseja inserir um espaço. %code% não funcionará lá, já que é uma abreviação de uma classe de caracteres e o mecanismo de regex não saberia qual caractere colocar lá.

O %code% deve ser escapado na regex porque com o mecanismo de regex do sed %code% é um caractere normal, enquanto %code% é um metacaractere para 'um ou mais'. Na página 86 de Mastering Regular Expressions , Jeffrey Friedl menciona em uma nota de rodapé que ed e grep usavam parênteses com escape porque "Ken Thompson achava que expressões regulares seriam usadas para trabalhar primariamente com C código, onde a necessidade de combinar parênteses crus seria mais comum do que a retro-referência. "Suponho que ele se sentia da mesma maneira sobre o sinal de mais, daí a necessidade de escapar para usá-lo como um metacaractere. É fácil ser enganado por isso .

No sed, você precisará fugir de %code% , %code% , %code% , %code% e %code% . ou use -r para usar a regex estendida (então, parece que %code% ou %code%

    
______ azszpr895113 ___

Você pode usar a opção %code% ("squeeze") de %code% :

%pre%

A classe de caractere %code% é composta por espaços e guias.

    
______ azszpr725625 ___

Eu gosto de usar o seguinte apelido para o bash. Com base no que os outros escreveram, use sed para pesquisar e substituir vários espaços por um único espaço. Isso ajuda a obter resultados consistentes do corte. No final, eu corro através de sed mais uma vez para mudar o espaço para tabulação para que seja mais fácil de ler.

%pre%     
___

Eu tenho uma string como esta: test.de. 1547 IN SOA ns1.test.de. dnsmaster.test.de. 2012090701 900 1000 6000 600 agora quero substituir todas as guias / espaços entre os registros por um único espaço, para que eu poss...
23.09.2012 / 18:17
4
respostas

Comando shell do Linux para filtrar um arquivo de texto por comprimento de linha

Eu tenho uma imagem de disco de 30GB de uma partição borked (acho que dd if=/dev/sda1 of=diskimage ) que eu preciso recuperar alguns arquivos de texto. As ferramentas de criação de dados como foremost funcionam somente em arquivos com cabeç...
31.01.2012 / 08:22
3
respostas

Como apagar todos os caracteres em uma linha depois de “]” com sed?

Como apagar todos os caracteres em uma linha depois de "]" com sed? Estou tentando usar algum arquivo usando o cat, awk. Agora meu oneliner me retorna algo como 121.122.121.111] other characters in logs from sendmail.... :) Agora eu...
13.06.2012 / 08:19
5
respostas

Como analisar e converter o arquivo ini em variáveis do array bash?

Estou tentando converter um arquivo ini em variáveis de matriz bash. A amostra ini é como abaixo: [foobar] session=foo path=/some/path [barfoo] session=bar path=/some/path para que estes se tornem: session[foobar]=foo path[foobar]=/so...
01.01.2012 / 06:59
3
respostas

Como obter todos os ids do processo em execução apenas?

Eu sei que ps ax retorna os pids 1 ? Ss 0:01 /sbin/init 2 ? S< 0:00 [kthreadd] 3 ? S< 0:00 [migration/0] Tudo o que preciso é limpar essas cadeias, mas não consegui fazê-lo com sed porque não...
12.08.2009 / 18:29
2
respostas

extração de sub-string bash para o caractere inicial e final especificado

Por exemplo, eu tenho um arquivo de log com esta entrada: [Wed Aug 08 11:39:41 2012] [error] [client 155.94.70.224] ModSecurity: [file "/etc/httpd/modsecurity.d/rules/base_rules/modsecurity_crs_20_protocol_violations.conf"] [line "271"] [i...
08.08.2012 / 10:44
4
respostas

grep ou sed para encontrar um valor inteiro acima de um determinado valor?

Isso se refere a outra pergunta: Eu gostaria de analisar a saída de um comando (ou catar um arquivo de log) e encontrar um valor de string, convertê-lo em um inteiro e então ver se esse valor inteiro é maior do que um dado inteiro. Por ex...
02.09.2011 / 19:47