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