[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

RE: Reemplazar enlaces por originales conservando el nombre del enlace




>-----Mensaje original-----
>De: Camaleón [mailto:noelamac@gmail.com]
>Enviado el: jueves, 22 de octubre de 2015 16:10
>Para: debian-user-spanish@lists.debian.org
>Asunto: Re: Reemplazar enlaces por originales conservando el nombre del
>enlace
>
>El Wed, 21 Oct 2015 23:40:38 +0200, Ramses escribió:
>
>> El 21 de octubre de 2015 21:57:36 CEST, "Camaleón"
>> <noelamac@gmail.com>
>> escribió:
>
>(...)
>
>>>#!/bin/bash f=/home/usuario/fc1 while read i; do var=$(echo "$i" | awk
>>>'{system("rm -fv "$1) system("cp -afv "$3 " "$1)}') done < "$f"
>>>
>>
>> Camaleón, hay algunas líneas de tu script que tengo claras, pero con
>> otras tengo dudas de lo que hacen...
>>
>> ¿Te importaría comentar cada una de las líneas del script para tenerlo
>> totalmente claro?.
>
>El script mantiene la idea original del OP con un bucle para leer línea por línea
>un archivo de texto con la estructura adecuada para el uso de awk y ejecutar
>las dos acciones sobre los archivos (eliminar el enlace simbólico y copiar el
>archivo original manteniendo el nombre del enlace eliminado).

Sí, si el resultado final tengo claro que es el que necesita el OP, pero como es un script que, para alguien que no tenga bastante experiencia en Bash, es un pelín complicado, por ejemplo yo, pues por eso te he pedido que lo comentes. Vamos, tú o cualquier otro de la lista que quiere explicármelo.

El contenido del fichero fc1 es este:

Enlacearchivo1 --- archivoenlazado1
Enlacearchivo2 --- archivoenlazado2
Enlacearchivo3 --- archivoenlazado3

El script es este:

#!/bin/bash
f=/home/usuario/fc1
while read i; do
var=$(echo "$i" | awk '{system("rm -fv "$1) system("cp -afv "$3 " "$1)}') done < "$f"

El tema es que no sabía cómo iba tomando i$ el valor de cada línea, pero he encontrado este enlace hablando y explicando el "while read..." y me ha quedado claro.

http://es.ccm.net/faq/893-como-leer-un-archivo-linea-por-linea


Saludos,

Ramses


Reply to: