( gee | 2014. 05. 21., sze – 01:08 )

Így valóban nem volt tökéletes. Ha egy sorban legalább három szóközöket is tartalmazó elérési út szerepelt, akkor az első még jó volt, de a read az escape-eket kiszedte, és így a maradékot nem lehetett rendesen szétvágni.

Végül, ahogy javasoltad, tömböt használtam.

Ez lett a végeredmény:


while read -a two; do
        one="${two[0]}"
        unset two[0];
        for i in "${two[@]}"; do
                rm "$i"
                ln "$one" "$i"
        done
done < $1

Az eredménnyel elégedett vagyok, hiszen működik, de a shell tömb kezelését megtanulni hozzá az kicsit több volt, mint amire számítottam.
Azt hittem egyszerűbben (új dolog megtanulása nélkül) is meg lehet oldani.

Lehet, hogy pythonban kellett volna megírnom, csak éppen feltételeztem, hogy shell scriptben hipp-hopp megvan, ha sikerül visszaemlékeznem a dolgokra.