Você pode expressar essas condições usando expressões regulares e usar grep para filtrar os resultados com base nesses termos.
O primeiro é ^? . O quilate é um caractere especial que representa o início de uma linha; para que a expressão corresponda ao início da linha imediatamente seguida por ? .
O segundo é ^ *\* . O * é um caractere especial que qualifica o caractere precedente - significa que o caractere precedente pode aparecer zero ou mais vezes. Como * é um caractere especial, o que você está procurando precisa ser evitado, portanto, \* . Assim, essa expressão corresponderá ao início de uma linha seguida por zero ou mais espaços, seguidos por um asterisco.
Para sua primeira condição, use a opção -v para grep para negar os resultados.
Então, finalmente,
svn status --show-updates | grep -v '^?'
ou
svn status --show-updates | grep '^ *\*'
Expressões regulares são muito poderosas, então muitas ferramentas Unix podem usá-las. Eles valem muito a pena aprender. Existe um ótimo tutorial em regular-expressions.info .