user3228279
user3228279

Reputation: 73

Shell Script: Read line in file

I have a file paths.txt:

/my/path/Origin/.:your/path/Destiny/.
/my/path/Origin2/.:your/path/Destiny2/.
/...
/...

I need a Script CopyPaste.sh using file paths.txt to copy all files in OriginX to DestinyX

Something like that:

 #!/bin/sh

while read line
do
        var= $line | cut --d=":" -f1
        car= $line | cut --d=":" -f2
        cp -r var car

done < "paths.txt"

Upvotes: 3

Views: 20999

Answers (2)

anubhava
anubhava

Reputation: 785316

You need to use command substitution to get command's output into a shell variable:

#!/bin/sh

while read line
do
        var=`echo $line | cut --d=":" -f1`
        car=`echo $line | cut --d=":" -f2`
        cp -r "$var" "$car"
done < "paths.txt"

Though your script can be simplified using read -d:

while read -d ":" var car; do
  cp -r "$var" "$car"
done < "paths.txt"

Upvotes: 3

user3139488
user3139488

Reputation:

Use translate : tr command & apply cp command in the same go!

#!/bin/sh

while read line; do
  cp `echo $line | tr ':' ' '`
done < "paths.txt"

Upvotes: 4

Related Questions