Resultados Awk inesperados com sh -c

4

Eu estou tentando sudo um comando que usa Awk, e parece que o awk funciona de maneira diferente dentro do sh -c.

echo '1 2' | awk '{print $2}'

2

sh -c "echo '1 2' | awk '{print $2}'"

1 2

Por que isso está acontecendo?

    
por Michael Sofaer 28.06.2010 / 21:08

1 resposta

3

Você usa aspas duplas, portanto $2 é avaliado. As aspas simples internas não afetam mais isso. Se $2 estiver vazio, você está basicamente chamando awk '{print }' . Conseqüentemente, você obtém toda a linha de entrada como saída.

Por exemplo, você pode escapar do $ com uma barra invertida: \

    
por 28.06.2010 / 21:32

Tags