Ho il seguente codice per unire più file insieme. Funziona bene ma voglio sostituire i valori vuoti a 0, quindi ho usato -e "0". Ma non funziona. Qualche idea?bash unire più file con la sostituzione vuota (opzione -e)
for k in `ls file?`
do
if [ -a final.results ]
then
join -a1 -a2 -e "0" final.results $k > tmp.res
mv tmp.res final.results
else
cp $k final.results
fi
done
esempio:
file1:
a 1
b 2
file2:
a 1
c 2
file3:
b 1
d 2
Results:
a 1 0 1 0
b 2 1 0
c 2
d 2
expected:
a 1 1 0
b 2 0 1
c 0 2 0
d 0 0 2
Non analizzare l'output di 'ls'; basta usare 'per k in file ?; do'. Inoltre, cita l'espansione di '$ k' per proteggere i caratteri speciali nel nome del file. – chepner