A: 

It's not elegant, but paste is part of coreutils and should be available, but it will take some temporary files:

$ cat test.csv
one,two,three,four,five,six,seven
1,2,3,4,5,6,7
$ cut -d, -f1-5 test.csv > start.txt
$ cut -d, -f3 test.csv> replace.txt
$ cut -d, -f7 test.csv > end.txt
$ paste -d, start.txt replace.txt end.txt
one,two,three,four,five,three,seven
1,2,3,4,5,3,7

Or, you can skip the last temporary file and use standard input:

$ cut -d, -f7 test.csv | paste -d, start.txt replace.txt -
one,two,three,four,five,three,seven
1,2,3,4,5,3,7
Kaleb Pederson
Useless uses of `cat`.
Dennis Williamson
@Dennis - Point taken, corrected.
Kaleb Pederson
+4  A: 

Just tell awk to replace field 25 with field 22.

awk 'BEGIN{FS=","; OFS=","} {$25=$22; print}' < test.csv
jamessan
No need for input redirection - awk takes filenames as arguments.
Jefromi
I did not know how to print without enumerating the columns. This is good to know.
frankc