Re: [Lug-bg] fuser + awk
- Subject: Re: [Lug-bg] fuser + awk
- From: Ted Zlatanov <tzz@xxxxxxxxxxxx>
- Date: Tue, 15 Apr 2008 09:26:59 -0500
- Organization: Теодор Златанов @ Cienfuegos
On Tue, 15 Apr 2008 10:28:53 +0300 "Dimitar Vasilev" <dimitar.vassilev@xxxxxxxxx> wrote:
DV> На 15.04.08, Yordan Boikov <boikov@xxxxxxxxx> написа:
>>
>> опс :)
>> трябва да е с == (два пъти равно) щото иначе е присвояване а не сравнение
>> :)
>>
>> 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@xxxxxxxxxxxxxxxxxx
http://linux-bulgaria.org/mailman/listinfo/lug-bg
|