Hago svn status --show-updates
y luego quiero
- P1:
ignorar (no mostrar) las líneas que comienzan con?
- P2:
muestra solo las líneas que comienzan con*
Tenga en cuenta que hay pocos espacios antes de que aparezca *. Eso significa que*
no es el primer carácter de la línea.
¿Cómo puedo hacer eso?
Respuesta aceptada:
Puede expresar esas condiciones usando expresiones regulares y usar grep
para filtrar los resultados en función de ellos.
El primero es ^?
. El quilate es un carácter especial que representa el comienzo de una línea; para que la expresión coincida con el comienzo de la línea seguida inmediatamente por un ?
.
El segundo es ^ *\*
. El *
es un carácter especial que califica al carácter anterior; significa que el carácter anterior puede aparecer cero o más veces. Desde *
es un carácter especial, el que está buscando debe escaparse, por lo tanto, \*
. Entonces esa expresión coincidirá con el comienzo de una línea seguido de cero o más espacios, seguido de un asterisco.
Para su primera condición, use -v
opción para grep
para negar los resultados.
Así que finalmente,
svn status --show-updates | grep -v '^?'
o
svn status --show-updates | grep '^ *\*'
Las expresiones regulares son muy poderosas, por lo que muchas herramientas de Unix pueden usarlas. Vale mucho la pena aprenderlos. Hay un gran tutorial en regular-expressions.info.