On Tue, 15 Apr 2008 10:28:53 +0300 "Dimitar Vasilev" <[EMAIL PROTECTED]> wrote:
DV> На 15.04.08, Yordan Boikov <[EMAIL PROTECTED]> написа: >> >> опс :) >> трябва да е с == (два пъти равно) щото иначе е присвояване а не сравнение >> :) >> >> awk -F: '{if ($2=="") print $0}' DV> не сработва добре: DV> Дава ми: DV> b10SID_ora_PID.trc: DV> b10SID_ora_PID.trc: DV> b10SID_ora_PID.trc: DV> b10SID_ora_PID.trc: DV> и в низа се пръква DV> b10SID_ora_6762.trc: ooooooooooooo DV> b10SID_ora_PID.trc: DV> b10SID_ora_PID.trc: DV> b10SID_ora_PID.trc: DV> b10SID_ora_PID.trc: DV> 17793 18406 1399 18132 18108 18774 18763 18757 18767 DV> 18138 12169 668 29722 DV> Идеи как да добавя и ofs да е null? Забележи документацията: fuser outputs only the PIDs to stdout, everything else is sent to stderr. така че трябва да използваш |& (tcsh/zsh). Това е за да можеш да кажеш kill `fuser FILE` мисля, но е неудобно в твоят случай. Също ме учудва, че твоят fuser показва файлове който не се използват. Моят казва в опцийте: -a Show all files specified on the command line. By default, only files that are accessed by at least one process are shown. така че без -a би трябвало да покаже само използваните файлове, и `cut -d : -f 1' ще стигне. Аз бих използвал fuser индивидуално с всеки файл, защото връща 0 само ако файла е използван. Така че ще ти е проверка, без awk/grep/perl/cut/т.н. междинни процеси. Ще е по-бавно да го зареждаш всеки път ако имаш хиляди файлове, иначе е много по-точен метод (особено ако файла има : в името). perl -MFile::Find -e'open T, ">/tmp/files.txt"; find(sub { system(fuser => $_) || print T "$File::Find::name\n" }, @ARGV);' /usr/lib Това ще прати имената на използваните файлове в /tmp/files.txt. Дай му каквато директория искаш като параметър. Не ми се занимаваше да филтрирам fuser, което маже STDOUT и STDERR, в perl или awk или find, но може да се направи ако те дразни. Тео _______________________________________________ Lug-bg mailing list Lug-bg@linux-bulgaria.org http://linux-bulgaria.org/mailman/listinfo/lug-bg