BandaAncha.eu

  • 🔍 en 📰 artículos ⏎
  • 🔍 en 💬 foros ⏎
  • 🔍 en 👇 este 💬 foro ⏎
  • 🔍 en 👇 este 💬 tema ⏎
Regístrate Regístrate Identifícate Identifícate

Imprimir con awk resto de columnas por encima de la primera

cisquito

Tengo un archivo de texto con la siguiente estructura:

/home/cisquito/Música cancion_numero_01.mp3
/home/cisquito/Música cancion_numero_02.mp3

Para situar la ruta de los MP3 por debajo del nombre de los archivos puedo hacer:

$ awk '{ print $2 ": " $1}' lista_MP3.txt | tr " " "\n" | sed '0~2 a\\'

Y queda así:

cancion_numero_01.mp3:
/home/cisquito/Música

cancion_numero_02.mp3:
/home/cisquito/Música

Pero tengo otro archivo con la siguiente estructura:

/home/cisquito/Vídeos video con nombre tal.mkv
/home/cisquito/Vídeos video con nombre más largo.mkv
/home/cisquito/Vídeos video con nombre más largo todavía.mkv

Si ejecuto la sintaxis de awk anterior obtengo esto:

video:
/home/cisquito/Vídeos

video:
/home/cisquito/Vídeos

video:
/home/cisquito/Vídeos

El objetivo es que, usando como delimitador el espacio en blanco, desde la columna 2 en adelante aparezcan, en la misma línea, encima de la columna 1.

lhacc
1

sed -E 's/([^ ]*) (.*)/\2:\n\1\n/' lista.txt

🗨️ 1
cisquito

Muchas gracias. Funciona perfectamente.

Y yo complicándome la vida con awk

Un saludo y gracias nuevamente.