Tengo archivos de texto grandes con cadenas delimitadas por espacios (2-5). Las cadenas pueden contener "'" o "-". Me gustaría reemplazar, digamos, el segundo espacio con una tubería.
¿Cuál es el mejor camino a seguir?
Usando sed estaba pensando en esto:
sed -r 's/(^[a-z'-]+ [a-z'-]+\b) /\1|/' filename.txt
¿Alguna otra idea / mejor / más simple?
linux
command-line
sed
awk
dnkb
fuente
fuente
sed
archivo de información: "Nota: el estándar POSIX no especifica qué debe suceder cuando se mezclan lasg' and NUMBER modifiers, and currently there is no widely agreed upon meaning across
implementaciones de sed. Para GNU 'sed', la interacción se define como: ignorar coincidencias antes del NÚMERO, y luego emparejar y reemplazar todos coincidencias a partir del NUMBERth ".sed
. No estoy seguro de que deba agradecerte porsed
hacerme aún más útil, pero lo haré de todos modos. ;)¿Probaste tu versión? ¿Funcionó? Porque creo que es básicamente una buena idea. Sin embargo, haría un poco diferente:
Esto aceptará cualquier carácter en una palabra que no sea espacio, y aceptará más de un espacio entre las dos primeras palabras.
fuente