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 corresponder ao 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?

    
por yael 31.05.2010 / 14:27

1 resposta

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, em vez 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.

    
por 31.05.2010 / 16:26

Tags