grep/find
Jan Pechanec
jp at devnull.cz
Wed May 25 20:41:53 CEST 2005
On Wed, 25 May 2005, Lubomir Majersky wrote:
cau,
> a takyto subor, ktory vyhovie tej podmienke potrebujem zmazat. Pokusal som sa
> to previest pomocou find (a roznymi inymi kombinaciami)asi takto:
>
> find ./* -exec grep 'vzorka1' {} ";" | find ./* -exec grep 'vzorka2' ";" -exec
> rm -f {} ";"
michas vstupy ruznych prikazu (tj. vstup prvniho grepu davas do
druheho grepu, aniz abys ale zachovaval kontext toho, jaky soubor testujes),
ten 1. soubor se ti smaze pokud ve vystupu 1. grepu je 'vzorka2' a ostatni
se ti nesmazou proto, ze druhy grep vezme veskery vstup z predchoziho findu
a pro dalsi soubory tak uz nemuze byt podminka pravdiva (grep nemuze nic
najit, kdyz na vstupu nic neni). Proste spojujes nesouvisejici veci.
muzes napr. pouzit:
for i in *; do grep -e 'vzorka1.*vzorka2' $i >/dev/null && rm -f $i; done
find * -exec grep -e 'vzorka1.*vzorka2' {} \; -exec rm -f {} \; >/dev/null
grep -e 'vzorka1.*vzorka2' * | cut -f1 -d: | sort -u | xargs rm -f
atd.
ale zrovna ten find se mi moc nelibi, nezda se mi to moc prehledny.
h.
--
Jan Pechanec <jp (at) devnull (dot) cz>
More information about the Users-l
mailing list