[find regex] filenames langer dan 31 karakters

Pagina: 1
Acties:

  • usr-local-dick
  • Registratie: September 2001
  • Niet online
Hoi

Ik wil weten welke filenames in een hele tree er langer zijn dan 31 karakters.
Was tot hier gekomen:

code:
1
find . -exec basename {} \; | egrep .{31} | less


Dit werkt wel alleen nu zie ik alleen de basename van het resultaat.
Ik zou eigenlijk het voledige pad willen zien van de gevonden files.
Maar aangezien ik de egrep buiten de find doe kan dat niet.

Een compleet andere manier (php/perl) zou ook nog kunnen, dit was mijn eerste poging nl :)

  • _Squatt_
  • Registratie: Oktober 2000
  • Niet online
In Ruby:
code:
1
2
3
4
5
6
7
8
9
#!/usr/bin/env ruby

require 'find'

Find.find( '.') { |f|
    if File.stat( f).file? && File.basename( f).length >= 31
        puts f
    end
}

Zoiets kan natuurlijk ook wel in Perl of Python. Zonder Ruby kan ook:
code:
1
find . -exec sh -c 'echo `basename "$0"` | egrep .{31} && echo $0' {} \;

Maar dit runt voor elke file een 'sh', 'echo', 'basename' en 'egrep', en is (gruwelijk) traag! Ik weet zo snel niet of dit sneller of beter kan, ik grijp al snel naar Ruby, want op mijn systemen is dat toch aanwezig.

"He took a duck in the face at two hundred and fifty knots."


Verwijderd

Wat dacht je van:
find . -name "??????????????????????????????*" | less

  • _Squatt_
  • Registratie: Oktober 2000
  • Niet online
Verwijderd schreef op 28 april 2004 @ 21:16:
Wat dacht je van:
find . -name "??????????????????????????????*" | less
Er moet nog 1 '?' bij. ;)

Maar je hebt gelijk, ik zat al te kijken, maar ik was bezig met:
code:
1
find -regex .\*/.{31}*

maar dat werkte niet. Het leek me al onwaarschijnlijk dat dit niet op de een of andere manier met find kon.

"He took a duck in the face at two hundred and fifty knots."


  • ACM
  • Registratie: Januari 2000
  • Niet online

ACM

Software Architect

Werkt hier

en neem dan de -ls switch van find (of een -printf variant naar eigen smaak) om hem te tonen, ipv de impliciete -print ;)

[ Voor 21% gewijzigd door ACM op 28-04-2004 22:09 ]