Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

Pomoc oko bash skripte

[es] :: Skript jezici :: Pomoc oko bash skripte

[ Pregleda: 18650 | Odgovora: 1 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

Milan34

Član broj: 326385
Poruke: 9
31.223.129.*



Profil

icon Pomoc oko bash skripte28.06.2015. u 19:33 - pre 106 meseci
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.

 
Odgovor na temu

uranium
Beograd

Član broj: 60097
Poruke: 543
46.240.242.*

Jabber: uranium@elitesecurity.org
ICQ: 324386953


+5 Profil

icon Re: Pomoc oko bash skripte29.06.2015. u 01:15 - pre 106 meseci

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



Attempt all the problems. Those you can do, don't do. Do the ones you cannot.
 
Odgovor na temu

[es] :: Skript jezici :: Pomoc oko bash skripte

[ Pregleda: 18650 | Odgovora: 1 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.