Reputation: 3028
I have a folder containing a set of cs*.dat3
files like this:
$ find dispersion_upper_deck/ -name cs*.dat3
dispersion_upper_deck/cs600011.dat3
dispersion_upper_deck/Runs652/cs652203.dat3
dispersion_upper_deck/Runs652/cs652103.dat3
dispersion_upper_deck/Runs652/cs652204.dat3
dispersion_upper_deck/Runs652/cs652104.dat3
dispersion_upper_deck/Runs654/cs654404.dat3
dispersion_upper_deck/Runs654/cs654403.dat3
Now, for each of these files I want to replace them with a corresponding co*.dat3
file that will be copied from a base file named co_base_dispersion
. Doing it manually, I could for example do cp co_dispersion_base dispersion_upper_deck/Runs652/co652203.dat3
for each file, but I want something that is more automated. I tried the following:
$ for cs_file in $(find dispersion_upper_deck/ -name cs*.dat3); do cp -v co_base_dispersion $(dirname $cs_file)/$(basename $cs_file) | sed "s/cs/co/"; done
`co_base_dispersion' -> `./dispersion_upper_deck/co600011.dat3'
`co_base_dispersion' -> `./dispersion_upper_deck/Runs652/co652203.dat3'
`co_base_dispersion' -> `./dispersion_upper_deck/Runs652/co652103.dat3'
`co_base_dispersion' -> `./dispersion_upper_deck/Runs652/co652204.dat3'
`co_base_dispersion' -> `./dispersion_upper_deck/Runs652/co652104.dat3'
`co_base_dispersion' -> `./dispersion_upper_deck/Runs654/co654404.dat3'
`co_base_dispersion' -> `./dispersion_upper_deck/Runs654/co654403.dat3'
Now, the output from cp -v
looks correct, but nothing happens:
find dispersion_upper_deck/ -name co*.dat3
$
What could be wrong here?
Upvotes: 0
Views: 82
Reputation:
This should work, i havent had time to test it though so just let me know if something goes wrong.
for cs_file in $(find dispersion_upper_deck/ -name cs*.dat3); do
Filename=$(basename $cs_file | sed "s/cs/co/")
cp -v co_base_dispersion $(dirname $cs_file)/$Filename
done
or Krøllebølles solution without the $Filename
variable.
for cs_file in $(find dispersion_upper_deck/ -name cs*.dat3); do
cp -v co_base_dispersion $(dirname $cs_file)/$(basename $cs_file | sed "s/cs/co/")
done
Upvotes: 1