Buongiorno! Vorrei utilizzare il comando find in modo che trovi tutti i file con nome palindromo di 3 caratteri, es. exe, txt etc. Ho utilizzato la seguente espressione regolare:

.*\(.\).\(.\)\2\1

con i primi due caratteri prendo il path del file. Cosa sbaglio? Mettendo un punto prima di \2 ottengo i file con nome palindromo più un carattere, es path/exe4, come mi aspetto; non capisco quindi dove sia l'errore. Grazie!

chiesto 28 Lug '15, 12:41

Strcmp_01's gravatar image

Strcmp_01
451711

modificato 28 Lug '15, 14:08


Premetto che solo GNU find è in grado di fare questo, in quanto l'opzione -regex non è prevista nello standard POSIX. Il comando giusto è

find . -regex '.*/\(.\).\1'

L'errore nella tua espressione sta nel fatto che dopo il primo gruppo "\(.\)" e il carattere generico ".", invece di dire che il terzo carattere dev'essere uguale al primo gruppo, metti un altro gruppo, e poi li ripeti invertiti, per cui la tua regex prevede 5 caratteri anziché 3.

coll. permanente

ha risposto 28 Lug '15, 14:48

enzotib's gravatar image

enzotib ♦♦
14.0k112186

Ok grazie! Solo per capire se ho capito come funziona esattamente: così dico che dopo il path avrò un certo carattere, (.), poi un altro carattere, ., e infine lo stesso carattere di prima, \1. Giusto? Non avevo capito che \1 fosse un ulteriore carattere! Grazie mille!

(28 Lug '15, 14:57) Strcmp_01 Strcmp_01's gravatar image

@Strcmp@01: sì, è così

(28 Lug '15, 16:55) enzotib ♦♦ enzotib's gravatar image
La tua risposta
abilita/disabilita anteprima

Segui questa domanda

Via email:

Una volta eseguito l'accesso potrai iscriverti a tutti gli aggiornamenti qui

Via RSS:

Risposte

Risposte e commenti

Basi di markdown

  • *corsivo* o __corsivo__
  • **grassetto** o __grassetto__
  • collegamento:[testo](http://url.com/ "titolo")
  • immagine?![alt testo](/path/img.jpg "titolo")
  • elenco numerato: 1. Foo 2. Bar
  • per aggiungere un'interruzione di riga, aggiungi due spazi a fine riga e premi «Invio»
  • è supportato anche semplice HTML

Tag:

×5

domanda posta: 28 Lug '15, 12:41

domanda visualizzata: 511 volte

ultimo aggiornamento: 28 Lug '15, 16:55

Chiedi è un servizio di supporto gestito da Ubuntu-it. Contattaci!

powered by OSQAPostgreSQL database
Ubuntu e Canonical sono marchi registrati da Canonical Ltd.