GNU/Linux >> Tutoriales Linux >  >> Linux

Sed:¿Eliminar todas las apariciones de una cadena excepto la primera?

Tengo un archivo de registro con marcas de tiempo en él. De vez en cuando hay varias marcas de tiempo en una línea. Ahora me gustaría eliminar todas las marcas de tiempo de una línea pero conservar la primera.

Puedo hacer s/pattern//2 pero eso solo elimina la segunda ocurrencia y sed no permite algo como s/pattern//2- .

¿Alguna sugerencia?

Respuesta aceptada:

Con GNU sed :

sed 's/pattern//2g'

El 2 especifica que el segundo patrón y todos los demás g debe quitar Así que esto mantendrá el primero.


Linux
  1. 3 formas de eliminar todos los archivos de un directorio excepto uno o algunos archivos con extensiones

  2. ¿Eliminar todos los archivos/directorios excepto un archivo?

  3. ¿Solo devolver la cadena coincidente en Sed?

  4. ¿Eliminar todos los archivos excepto en un determinado subdirectorio con Buscar?

  5. ¿Envolver el primer carácter de una cadena usando Sed?

¿Eliminar archivos de registro antiguos excepto el último (ordenados alfanuméricamente)?

¿Reemplazar todas las líneas nuevas al espacio excepto la última?

¿Usar Buscar para encontrar cierto directorio y eliminar todos los archivos excepto un directorio?

Mover todos los archivos excepto uno

Elimine los primeros cinco caracteres en cualquier línea de un archivo de texto en Linux con sed

Eliminar todas las carpetas dentro de una carpeta excepto una con un nombre específico