Kako sem jaz pameten! Folku cedim sline, potem pa ne attacham ... No, sedaj je tu izboljsana verzija (pri meni dela hitro). Attachani sta 2 skripti - packs izpise vse pakete, na katere noben drug ne dependa. lpacks izpise samo tiste, ki imajo za section nastavljen ".*lib.*". Upam, da bo tole komu koristilo. Ce bo, naj mi prosim poslje mail. Ce bo takih mailov dovolj, bomo lahko zatezili komu, ki je pravi debian developer, da je tole wanted feature.
#!/usr/bin/awk -Wexec BEGIN { FS="\n" RS="\n\n" DEPS[1]=""; PACKS[1]=""; } { split($0, PACK, "\n[a-z,A-Z]"); if (PACK[2] ~ ".* installed"){ split(PACK[1], NAME, ": "); for (sect in PACK) { if (PACK[sect] ~ "ection: .*lib.*") { PACKS[NAME[2]]=NAME[2]; } } for (sect in PACK) { if (PACK[sect] ~ "epends: .*") { split(PACK[sect], NAME, ": "); split(NAME[2], SUBDEPS, ","); for (i in SUBDEPS){ split(SUBDEPS[i], finaldep, " ") DEPS[finaldep[1]]=finaldep[1]; # print("dep: " finaldep[1]); } } } } } END { for (j in DEPS) { delete PACKS[DEPS[j]]; } for (i in PACKS) print(PACKS[i]) }
#!/usr/bin/awk -Wexec BEGIN { FS="\n" RS="\n\n" DEPS[1]=""; PACKS[1]=""; } { split($0, PACK, "\n[a-z,A-Z]"); if (PACK[2] ~ ".* installed"){ split(PACK[1], NAME, ": "); PACKS[NAME[2]]=NAME[2]; for (sect in PACK) { if (PACK[sect] ~ "epends: .*") { split(PACK[sect], NAME, ": "); split(NAME[2], SUBDEPS, ","); for (i in SUBDEPS){ split(SUBDEPS[i], finaldep, " ") DEPS[finaldep[1]]=finaldep[1]; # print("dep: " finaldep[1]); } } } } } END { for (j in DEPS) { delete PACKS[DEPS[j]]; } for (i in PACKS) print(PACKS[i]) }