GNU/Linux >> Tutoriales Linux >  >> Linux

¿Cómo combinar todas las líneas que terminan con un carácter de barra invertida?

Usando una herramienta de línea de comando común como sed o awk, ¿es posible unir todas las líneas que terminan con un carácter dado, como una barra invertida?

Por ejemplo, dado el archivo:

foo bar bash baz
dude happy

Me gustaría obtener este resultado:

foo bar bash baz
dude happy

Respuesta aceptada:

una solución sed más corta y simple:

sed  '
: again
/\$/ {
    N
    s/\n//
    t again
}
' textfile

o de una sola línea si usa GNU sed :

sed ':x; /\$/ { N; s/\n//; tx }' textfile

Linux
  1. ¿Cómo eliminar todas las líneas comentadas o líneas con un patrón específico en vim?

  2. ¿Cómo lograr la portabilidad con Sed -i (edición en el lugar)?

  3. ¿Cómo reemplazar una cadena con una cadena que contiene una barra oblicua con Sed?

  4. ¿Cómo generar un archivo e ignorar las líneas que comienzan con "?"?

  5. Cómo eliminar todas las líneas de un archivo en Vim

¿Cómo reinstalar todos los paquetes instalados con Zypper?

¿Cómo reemplazar todas las cadenas en un archivo que comienza con algún prefijo?

Cómo eliminar el carácter \r con sed

¿Cómo construir un módulo del kernel de Linux para que sea compatible con todas las versiones del kernel?

cómo hacer una búsqueda inversa de vim para todas las líneas sin texto

¿Cómo desinstalar completamente un paquete (incluidos todos los archivos adicionales que vienen con él) usando yum (o rpm)?