मेरे पास एकाधिक फ़ाइलों को एक साथ जोड़ने के लिए निम्न कोड है। यह ठीक काम करता है लेकिन मैं रिक्त मानों को 0 पर प्रतिस्थापित करना चाहता हूं, इसलिए मैंने "0" उपयोग किया। लेकिन यह काम नहीं करता है। कोई विचार?बैश खाली प्रतिस्थापन (-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
उदाहरण:
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
'एलएस' के आउटपुट का विश्लेषण न करें; बस फाइल के लिए 'के लिए उपयोग करें ?; do'। साथ ही, फ़ाइल नाम में विशेष वर्णों के खिलाफ सुरक्षा के लिए '$ k' के विस्तार का उद्धरण दें। – chepner