Đây là lệnh tôi đang sử dụng để liệt kê một số tệp:
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
vân vân
Bây giờ tôi muốn tính tổng kích thước của các tệp này bằng cách tóm tắt cột thứ 5. Tôi đã nghĩ đến việc sử dụng awk
, để làm điều này vì vậy tôi đã thử nghiệm những điều sau đây trong một thư mục cụ thể
>ls -lrt | awk `{ print $1 }`
ksh: syntax error at line 1 : `{' unmatched
Tôi không hiểu vấn đề là gì, tại sao lỗi cú pháp này .
Tôi đang suy nghĩ để thử
ls -lrt | awk `BEGIN {total = 0} {for(i=0;i<NR;i++){total+=$5}} END {printf "%d",total}
Điều này cũng có, nhưng một awk
kịch bản đơn giản không hoạt động.
Vui lòng đề nghị hoặc sửa chữa cho tôi nếu tôi sai, hoặc nếu có một cách giải quyết cho việc này.
find . -name \*.extract.sys -size +1000000c -exec ls -lrt {} \; | awk '{ total += $5 }; END { print total }'