[ Milan34 @ 28.06.2015. 19:33 ] @
Zadatak je da u direktorijumu koji se prosledi preko komandne linije odredim u kojoj tar arhivi se nalazi najvise datoteka i da ispisem naziv te arhive na ekran, i broj datoteka u arhivi. Podrazumijeva se da se u datom direktorijumu nalaze samo tar arhive. Ukoliko postoji vise arhiva sa istim maksimalnim brojem datoteka, ispisati samo broj takvih arhiva.

E sad, meni je problem ovo poredjenje, tj. kako naci koja arhiva ima najvise fajlova.

Za pocetak sam prosao for petljom kroz sve arhive

Code:
for arhive in `ls $1 *.tar`
do
brojfajlova=`tar -tvf  $arhive | awk '{print $6}' | wc -l  # sa tim prebrojavam i to mi radi 


E kako sad provjeriti koja je arhiva veca, pa da nju ispisem. Ovde imam za svaku broj fajlova, ali ih ne znam uporediti, tj. nemam ideju.

[ uranium @ 29.06.2015. 01:15 ] @

max_a="";max_br=0;for arhive in `ls $1 *.tar`; do brojfajlova=`tar -tvf $arhive | awk '{print $6}' | wc -l`; if [ ${brojfajlova} -gt ${max_br} ]; then max_a=$arhive; max_br=${brojfajlova}; fi; done; echo "$max_a $max_br"


A može i ovako:

ls -1 | xargs -Ix -n1 bash -c "tar tvf x | wc -l | tr '\n' ' ' && echo x" | sort -n -k1 | tail -1