Existem quatro abordagens.
1. Coloque o comando entre aspas duplas
Tanto as aspas duplas quanto os cifrões precisam ser escapados:
watch "awk 'NR%2==0 {printf \"%s %8.0f\", \, \}'" filename.txt
2. Coloque o comando entre aspas simples
Dentro de aspas simples, nem "
nem $
precisam ser escapadas. No entanto, não é possível incluir aspas simples em uma sequência de aspas simples. Se precisarmos de uma aspa simples para aparecer, a solução é finalizar a string com aspas simples e adicionar uma aspas simples com escape, \'
. Parece assim:
watch 'awk '\''NR%2==0 {printf "%s %8.0f", $1, $5}'\' filename.txt
3. Abordagem híbrida
Combinando as duas opções acima, colocamos a primeira parte da string entre aspas duplas e a segunda parte entre aspas simples:
watch "awk 'NR%2==0 {printf "'"%s %8.0f", $1, $5}'\' filename.txt
4. Sem aspas, mas com total escape
Se não colocarmos o comando entre aspas, precisaremos escapar de todos os caracteres ativos de shell necessários. Isso inclui espaços, cotações, chaves e cifrões:
watch awk\ \'NR%2==0 \{printf\ \"%s\ %8.0f\",\ \,\ \\}\' filename.txt