como eu suprimo a saída unidimensional do seds ao usar a opção -e?

4

por que a opção n não está funcionando aqui

   [root@testgfs2 final]# echo a b c | sed -ne 's/[[:blank:]]/"/gp' -ne 's/^/"/pg' -ne 's/$/"/pg'
    a"b"c
    "a"b"c
    "a"b"c"

eu só preciso:

"a"b"c"

na verdade eu quero sed fazer algo como:

echo a b c d | sed ...

saída:

'a' 'b' 'c' 'd'
    
por munish 27.02.2013 / 11:07

1 resposta

3

O problema é que você está usando p como um modificador que imprime o "espaço de padrão", ou seja, o resultado. Para corrigir o seu exemplo, faça:

echo a b c | sed -e 's/[[:blank:]]/"/g' -e 's/^/"/g' -e 's/$/"/g

Você também pode considerar usar algo como:

echo a b c | sed -e 's/\(\w*\)/""/g'

em vez disso.

    
por 27.02.2013 / 11:22