LINUX.ORG.RU

find -size script


0

0

Dobriy den', vopros takoi mozhet kto podskazhet.

U menja derevo katalogov, nuzhno naiti vse txt files, i esli oni po razmeru men'she 70 b, zapisat' ix v drugoi file. Eto ja mogu sdelat' primerno tak v shell

find ./*/*/*/*.txt -size -70c > output.txt,

no esli file nachinaetsja so znaka %, ego zapisyvat' ne nuzhno. Podskazhete kak eto sdelat'?

Spasibo

Marina

anonymous

Ответ на: комментарий от anonymous

Вы чего хотите добиться - чтобы файлы чьи имена начинаются с % не выводились или чтобы файлы, которые содержат % в качестве первого символа не выводились?

phoenix ★★★★
()
Ответ на: комментарий от phoenix

chtoby ne vyvodilis' fily, soderzhashie % v kachestve pervogo simvola

anonymous
()
Ответ на: комментарий от phoenix

esli ja pishu tak, to on vse ravno zapisyvaet fily, kotorye v kachestve pervogo simvola teksta soderzhat %

#!/bin/sh

find . -name \*.txt -size -70c | grep -v -e "^\%" > output

anonymous
()
Ответ на: комментарий от anonymous

$ find a
a
a/b
a/b/%2
a/b/c
a/b/c/d

$ find a -name "[^%]*"
a
a/b
a/b/c
a/b/c/d

Остальные ключи по вкусу.

io ★★
()
Ответ на: комментарий от sdio

find позволяет задавать логические операции над параметрами поиска:

find /mydir -name '*.txt' -and -not -name '%*' -and -size -70c

"-and" можно не писать.

amm
()
Ответ на: комментарий от amm

>esli ja pishu tak, to on vse ravno zapisyvaet fily, kotorye v >kachestve pervogo simvola teksta soderzhat %
          ^^^^^^^^^^^^^^^^^^^^^^^^ - Прочти три раза                 
>
>#!/bin/sh
>
>find . -name \*.txt -size -70c | grep -v -e "^\%" > output
>
>anonymous (*) (22.04.2005 19:10:50)

В содержимое файла все равно надо лезть, так что одним find не обойтись

sdio ★★★★★
()
Ответ на: комментарий от amm

>esli ja pishu tak, to on vse ravno zapisyvaet fily, kotorye v 
>kachestve pervogo simvola teksta soderzhat %
          ^^^^^^^^^^^^^^^^^^^^^^^^ - Прочти три раза
>
>#!/bin/sh
>
>find . -name \*.txt -size -70c | grep -v -e "^\%" > output
>
>anonymous (*) (22.04.2005 19:10:50)

В содержимое файла все равно надо лезть, так что одним find не обойтись

sdio ★★★★★
()
Ответ на: комментарий от sdio

> Прочти три раза  

Понял со второго. :)

> В содержимое файла все равно надо лезть, так что одним find не обойтись

С помощью gawk:

find ... | xargs gawk '! /^%/ {print FILENAME; nextfile}'

Только пустые файлы не попадут в список (но их при необходимости можно найти 
отдельным find'ом).

amm
()

find -not -name '%*' -size -70c > output.txt

murla
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.