Linux-Bulgaria.ORG
навигация

 

начало

пощенски списък

архив на групата

семинари ...

документи

как да ...

 

 

Предишно писмо Следващо писмо Предишно по тема Следващо по тема По Дата По тема (thread)

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


 

наши приятели

 

линукс за българи
http://linux-bg.org

FSA-BG
http://fsa-bg.org

OpenFest
http://openfest.org

FreeBSD BG
http://bg-freebsd.org

KDE-BG
http://kde.fsa-bg.org/

Gnome-BG
http://gnome.cult.bg/

проект OpenFMI
http://openfmi.net

NetField Forum
http://netField.ludost.net/forum/

 

 

Linux-Bulgaria.ORG

Mailing list messages are © Copyright their authors.