यह वह कमांड है जिसका उपयोग मैं कुछ फाइलों को सूचीबद्ध करने के लिए कर रहा हूं:
find . -name \*.extract.sys -size +1000000c -exec ls -lrt {} \;
-rw-r--r-- 1 qa1wrk15 test 1265190 Sep 29 01:14 ./var/can/projs/ar/rep/extract/Sep/29/ar.ARAB-PI_7.20110929.extract.sys
-rw-r--r-- 1 qa1wrk15 test 1345554 Sep 29 01:14 ./var/can/projs/ar/rep/extract/Sep/29/ar.ARAB-PI_2.20110929.extract.sys
-rw-r--r-- 1 qa1wrk15 test 1370532 Sep 29 01:14 ./var/can/projs/ar/rep/extract/Sep/29/ar.ARAB-PI_3.20110929.extract.sys
-rw-r--r-- 1 qa1wrk15 test 1399854 Sep 29 01:14 ./var/can/projs/ar/rep/extract/Sep/29/ar.ARAB-PI_8.20110929.extract.sys
और इसी तरह।
अब मैं इन फाइलों के कुल आकार की गणना 5 वें कॉलम के हिसाब से करना चाहता हूं। मैंने ऐसा करने का सोचा awk
, ऐसा करने के लिए मैंने एक विशेष निर्देशिका में निम्नलिखित का परीक्षण किया
>ls -lrt | awk `{ print $1 }`
ksh: syntax error at line 1 : `{' unmatched
मुझे समझ नहीं आ रहा है कि समस्या क्या है, यह वाक्य रचना त्रुटि क्यों है ।
मैं कोशिश करने के लिए सोच रहा हूं
ls -lrt | awk `BEGIN {total = 0} {for(i=0;i<NR;i++){total+=$5}} END {printf "%d",total}
यह भी, लेकिन एक साधारण awk
स्क्रिप्ट काम नहीं कर रही है।
यदि मैं गलत हूं, या इसके लिए कोई हल है, तो कृपया मुझे सुझाव दें या सही करें।
find . -name \*.extract.sys -size +1000000c -exec ls -lrt {} \; | awk '{ total += $5 }; END { print total }'