|
| Find er besværlig! Fra : Morten P |
Dato : 10-04-10 07:55 |
|
Jeg vil finde alle mapper som ikke indeholder syntaksen '\d{4}-' (Dvs
ekskluder '2004-04-01 - Gert Ged', men inkluder gruppe mappen '2004')
find . -type d | egrep -v '[0-9]{4}-'
Den fungerer, men kan man ikke skrive den syntaks direkte i find?
| |
Michael Rasmussen (10-04-2010)
| Kommentar Fra : Michael Rasmussen |
Dato : 10-04-10 09:52 |
|
On Sat, 10 Apr 2010 08:55:10 +0200
"Morten P" <spam@spam.spam> wrote:
>
> Den fungerer, men kan man ikke skrive den syntaks direkte i find?
>
>
utestet: find . -type d -exec egrep -v '[0-9]{4}-' {} \;
--
Hilsen/Regards
Michael Rasmussen
http://pgp.mit.edu:11371/pks/lookup?op=get&search=0xE3E80917
A computer is like air conditioning: it becomes useless when you open
windows.
| |
Morten P (10-04-2010)
| Kommentar Fra : Morten P |
Dato : 10-04-10 14:04 |
|
"Michael Rasmussen" <mir@miras.org> wrote in message
news:20100410105221.460b833d@sleipner.datanom.net...
> On Sat, 10 Apr 2010 08:55:10 +0200
> "Morten P" <spam@spam.spam> wrote:
>
>>
>> Den fungerer, men kan man ikke skrive den syntaks direkte i find?
>>
>>
> utestet: find . -type d -exec egrep -v '[0-9]{4}-' {} \;
Desværre, den giver ingen træffere overhovedet
| |
Klaus Alexander Seis~ (10-04-2010)
| Kommentar Fra : Klaus Alexander Seis~ |
Dato : 10-04-10 10:46 |
|
Morten P skrev:
> Jeg vil finde alle mapper som ikke indeholder syntaksen '\d{4}-'
> (Dvs ekskluder '2004-04-01 - Gert Ged', men inkluder gruppe
> mappen '2004')
>
> find . -type d | egrep -v '[0-9]{4}-'
GNU find har en ‘-not’-operator:
find . -type d -not -name '[0-9][0-9][0-9][0-9]-*'
Mvh,
--
Klaus Alexander Seistrup
http://klaus.seistrup.dk/
| |
Morten P (10-04-2010)
| Kommentar Fra : Morten P |
Dato : 10-04-10 14:07 |
|
"Klaus Alexander Seistrup" <klaus@seistrup.dk> wrote in message
news:hpphcg$1bi$1@zdani.szn.dk...
> Morten P skrev:
>
>> Jeg vil finde alle mapper som ikke indeholder syntaksen '\d{4}-'
>> (Dvs ekskluder '2004-04-01 - Gert Ged', men inkluder gruppe
>> mappen '2004')
>>
>> find . -type d | egrep -v '[0-9]{4}-'
>
> GNU find har en '-not'-operator:
>
> find . -type d -not -name '[0-9][0-9][0-9][0-9]-*'
Den der burde da fungere men den giver mig også følgende:
../Dyr/Egern/Peanut/2002-05-28 - Peanut Med Sin F?rste Jordn?d
Kan det stemme at fordi der er mærkelige tegn i så kan den ikke køre match
på dem?
(Er der en måde at erstatte de danske tegn der nu er garbled i filsystemet?)
| |
Lars Kongshøj (10-04-2010)
| Kommentar Fra : Lars Kongshøj |
Dato : 10-04-10 15:11 |
|
Morten P skrev:
> "Klaus Alexander Seistrup" <klaus@seistrup.dk> wrote in message
> news:hpphcg$1bi$1@zdani.szn.dk...
>> Morten P skrev:
>>
>>> Jeg vil finde alle mapper som ikke indeholder syntaksen '\d{4}-'
>>> (Dvs ekskluder '2004-04-01 - Gert Ged', men inkluder gruppe
>>> mappen '2004')
>>>
>>> find . -type d | egrep -v '[0-9]{4}-'
>> GNU find har en '-not'-operator:
>>
>> find . -type d -not -name '[0-9][0-9][0-9][0-9]-*'
Altså fire cifre efterfulgt af nul eller flere minusser
> Den der burde da fungere men den giver mig også følgende:
>
> ./Dyr/Egern/Peanut/2002-05-28 - Peanut Med Sin F?rste Jordn?d
Prøv '[0-9][0-9][0-9][0-9]-.*'
Mvh. Lars
| |
Mogens Kjaer (11-04-2010)
| Kommentar Fra : Mogens Kjaer |
Dato : 11-04-10 11:07 |
|
On 04/10/2010 03:07 PM, Morten P wrote:
....
> (Er der en måde at erstatte de danske tegn der nu er garbled i filsystemet?)
convmv
Mogens
--
Mogens Kjaer, Carlsberg A/S, Computer Department
Gamle Carlsberg Vej 10, DK-2500 Valby, Denmark
Phone: +45 33 27 53 25, Fax: +45 33 27 47 08
Email: mk@crc.dk Homepage: http://www.crc.dk
| |
Jacob Gaarde (10-04-2010)
| Kommentar Fra : Jacob Gaarde |
Dato : 10-04-10 14:09 |
|
On Sat, 10 Apr 2010 08:55:10 +0200
"Morten P" <spam@spam.spam> wrote:
> Jeg vil finde alle mapper som ikke indeholder syntaksen '\d{4}-' (Dvs
> ekskluder '2004-04-01 - Gert Ged', men inkluder gruppe mappen '2004')
>
>
> find . -type d | egrep -v '[0-9]{4}-'
>
>
> Den fungerer, men kan man ikke skrive den syntaks direkte i find?
>
>
find ./doc -not -name \*[0-9]4\*
--
--
//Jacob Gaarde
//Dont reply to my (apparent) e-mail address. Instead Use
//e-mail : jgaarde <at> gmail <dot> com
< http://www.linkedin.com/in/jacobgaarde>
| |
Morten P (10-04-2010)
| Kommentar Fra : Morten P |
Dato : 10-04-10 14:14 |
|
>
> find ./doc -not -name \*[0-9]4\*
Sorry
../Diverse/Objekter/0000-00-00 - Dilbert
| |
Klaus Alexander Seis~ (10-04-2010)
| Kommentar Fra : Klaus Alexander Seis~ |
Dato : 10-04-10 15:15 |
|
Morten P skrev:
>> find . -type d -not -name '[0-9][0-9][0-9][0-9]-*'
>
> Den der burde da fungere men den giver mig også følgende:
>
> ./Dyr/Egern/Peanut/2002-05-28 - Peanut Med Sin F?rste Jordn?d
>
> Kan det stemme at fordi der er mærkelige tegn i så kan den ikke
> køre match på dem?
Næppe. Metoden fungerer i øvrigt her:
#v+
$ mkdir -p "Dyr/Egern/Peanut/2002-05-28 - Peanut Med Sin Første Jordnød"
$ find . -type d
..
../Dyr
../Dyr/Egern
../Dyr/Egern/Peanut
../Dyr/Egern/Peanut/2002-05-28 - Peanut Med Sin Første Jordnød
$ find . -type d -not -name '[0-9][0-9][0-9][0-9]-*'
..
../Dyr
../Dyr/Egern
../Dyr/Egern/Peanut
$
#v-
Mvh,
--
Klaus Alexander Seistrup
http://klaus.seistrup.dk/
| |
Klaus Alexander Seis~ (10-04-2010)
| Kommentar Fra : Klaus Alexander Seis~ |
Dato : 10-04-10 15:26 |
|
Lars Kongshøj skrev:
>> find . -type d -not -name '[0-9][0-9][0-9][0-9]-*'
>
> Altså fire cifre efterfulgt af nul eller flere minusser
SÃ¥ vidt jeg kan se af find(1), benyttes der “shell pattern matchingâ€,
ikke pcre, så udtrykket burde svare til
#v+
find . -type d -print \
| while read path
do
file="$(basename \"${path}\")"
case "${file}" in
[0-9][0-9][0-9][0-9]-* )
: pass
;;
* )
echo "${path}"
;;
esac
done
#v-
Mvh,
--
Klaus Alexander Seistrup
http://klaus.seistrup.dk/
| |
Lars Kongshøj (10-04-2010)
| Kommentar Fra : Lars Kongshøj |
Dato : 10-04-10 16:15 |
|
Klaus Alexander Seistrup skrev:
> Lars Kongshøj skrev:
>
>>> find . -type d -not -name '[0-9][0-9][0-9][0-9]-*'
>> Altså fire cifre efterfulgt af nul eller flere minusser
>
> SÃ¥ vidt jeg kan se af find(1), benyttes der “shell pattern matchingâ€,
> ikke pcre, så udtrykket burde svare til
>
> #v+
>
> find . -type d -print \
> | while read path
> do
> file="$(basename \"${path}\")"
> case "${file}" in
> [0-9][0-9][0-9][0-9]-* )
> : pass
> ;;
> * )
> echo "${path}"
> ;;
> esac
> done
>
> #v-
>
> Mvh,
Du har sikkert ret. Jeg plejer at bruge locate+grep, det synes jeg er
nemmest.
Mvh. Lars
| |
|
|