Ini adalah perintah yang saya gunakan untuk membuat daftar beberapa file:
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
dan seterusnya.
Sekarang saya ingin menghitung ukuran total file-file ini dengan merangkum kolom ke-5. Saya berpikir untuk menggunakan awk
, untuk melakukan ini jadi saya menguji yang berikut di direktori tertentu
>ls -lrt | awk `{ print $1 }`
ksh: syntax error at line 1 : `{' unmatched
Saya tidak mengerti apa masalahnya, mengapa kesalahan sintaks ini .
Saya sedang berpikir untuk mencoba
ls -lrt | awk `BEGIN {total = 0} {for(i=0;i<NR;i++){total+=$5}} END {printf "%d",total}
ini juga, tetapi awk
skrip sederhana tidak berfungsi.
Tolong sarankan atau koreksi saya jika saya salah, atau jika ada solusi untuk ini.
sumber
find . -name \*.extract.sys -size +1000000c -exec ls -lrt {} \; | awk '{ total += $5 }; END { print total }'
ls
!@enzotib telah menunjukkan apa kesalahan sintaksis Anda - saya akan sedikit bersinggungan.
Penjumlahan kolom angka adalah salah satu hal yang terus bermunculan. Saya berakhir dengan fungsi shell ini:
Dengan ini, solusi Anda menjadi:
Itu akan menjumlahkan angka-angka di kolom 5 dan mencetak nilainya.
sumber
.aliases
file saya .Berikut cara lain untuk melakukan ini dengan menggunakan
du
:sumber
du -ch --files0-from=-
beri tahu saya bahwa total saya adalah "9.0G". Sweeeet!tail -1
.Seandainya HP-UX
find
juga memiliki-printf
opsi, itu akan berguna untuk menyusun formula untukbc
menghitung:Jika formula terlalu besar, dapat dihitung langkah demi langkah:
sumber
Dengan GNU
find
:Dengan GNU
stat
:Dengan BSD
stat
:sumber
jq
sebuah utilitas? Sepertinya tidak ditemukan pada distribusi debian (Debian 4.9.51-1 (2017-09-28) x86_64 GNU / Linux)