sed ou grep ou awk para combinar linhas muito, muito longas

0

mais arquivo

param1 = "1, deerfntjefnerjfntrjgntrjnvgrvgrtbvggfrjbntr rfr4fv frfftrjgtrignmtignmtyightygjn 2,3,4,5,6,7,8,
rfcmckmfdkckemdio8u548384omxc, mor0ckofcmineucfhcbdjcnedjcnywedpeodl40fcrcmkedmrikmckffmcrffmrfrifmtrifmrifvysdfn "

precisa coincidir com o conteúdo de $ param1 no arquivo mas não funciona por exemplo sed -n "/ $ param1 / p" arquivo
ou qualquer arquivo grep $ param1 etc ...

alguma outra solução? talvez com perl?

yael
fonte
1
Por favor, poste o script completo, exato ou linha de comando que você está usando, juntamente com a entrada exata & amp; saída e explique o que você esperava. Então provavelmente podemos ajudar.
sleske
por exemplo grep -w $ param1 arquivo quando o conteúdo do arquivo: 1, deerfntjefnerjfntrjgntrjnvgrvgrtbvggfrjbntr rfr4fv frfftrjgtrignmtignmtyightygjn 2,3,4,5,6,7,8, rfcmckmfdkckemdio8u548384omxc, mor0ckofcmineucfhcbdjcnedjcnywedpeodl40fcrcmkedmrikmckffmcrffmrfrifmtrifmrifvysdfn _______e param1 é: param1 = "1, deerfntjefnerjfntrjgntrjnvgrvgrtbvggjjjjtr rfr4fv frfftrjgtrignmtignmtyightygjn 2,3,4,5,6,7,8, rfcmckmfdkckemdio8u548384omxc, mor0ckofcmineucfhcbdjcnedjcnywedpeodl40fcrcmkedmrikmckffmcrffmrfrifmtrifmrifvysdfn "
yael
@yael: edite sua resposta, em vez de postar um comentário. Isso é o que o botão "editar" abaixo da resposta é para :-).
sleske

Respostas:

0

Difícil de ajudar sem o script exato que você está executando, mas um ponto para verificar:

O valor de "param1" que você publicou contém caracteres de asterisco ("*"). Estes têm um significado especial para sed e grep (e perl, e geralmente em qualquer expressão regular). Para corresponder a esses caracteres como literais, você geralmente precisa "escapar" deles ao incluir uma barra invertida.

Então, ao invés de "aa * b" você precisaria "aa * b". Tente isso primeiro para ver se isso ajuda.

Advertência: O shell também processará um \, portanto, ao usá-lo como um valor de parâmetro, coloque o valor em '', como:

param1='basldafsd\*asdfsadf'

O '' protegerá caracteres especiais do shell.

sleske
fonte