Tengo la siguiente línea:
abababtestab
Estoy tratando de encontrar una sed
expresión para eliminar todas las ocurrencias ab
desde el principio de la línea, por lo que la línea transformada debería ser:
testab
Siento que esto debería ser simple, pero realmente no sé nada al respecto sed
.
Lo que tengo hasta ahora es:
sed 's/^ab//'
Pero esto solo elimina la primera aparición de ab.
sed
de alrededor de 1979 lo apoyó. Tendría que ser una imitación inferior para no manejar la agrupación.\n*
, pero no\n\{min,max\}
.\(...\)*
, o\(...\)\{min,max\}
, como resultado no intencional de una implementación específica, y admitieron tanto la duplicación como las expresiones de intervalo después de subexpresiones y referencias inversas.\(ab\)\1*
versión funciona con la herencia predeterminadased
y la\(ab\)*
versión funciona con la herencia SuSv4sed
. Al menos, lo hace para mi construcción. Es cierto que construí mi conjunto de reliquias contra musl lib C, por lo que puedo imaginar que eso podría hacer que se comporte de manera diferente. Pero, por lo general, cuando una característica específica funciona en una herramienta de herencia de SuSv4 de reliquia pero no en la herramienta predeterminada, es porque el desarrollador lo hizo.Otro
sed
:Con cada línea de entrada, configuramos una etiqueta
:1
, luego hacemos las
sustituciónab
al comienzo de la línea. Si las
sustitución se realiza correctamente, se ordena que lat
rama se etiquete1
, rehaga el trabajo hasta que no aparezca ningúnab
patrón al comienzo de la línea, hemos terminado.fuente
s/^ab//; t1
es suficiente