Visualizzazione dei risultati da 1 a 8 su 8
  1. #1

    bash: come analizzare una stringa ?

    come scritto nel topic, il mio problema è controllare che una stringa corrisponda a certe caratteristiche.
    Piu precisamente, la stringa in questione è il nome di una directory, e mi serve che inizi con la / e termini senza /
    pensavo di "tagliare" il primo e l'ultimo carattere, e controllare solo questi... come posso fare?

    grazie!!

  2. #2

    Re: bash: come analizzare una stringa ?

    Originariamente inviato da Malyftw
    come scritto nel topic, il mio problema è controllare che una stringa corrisponda a certe caratteristiche.
    Piu precisamente, la stringa in questione è il nome di una directory, e mi serve che inizi con la / e termini senza /
    Urka, la mia prima regexp con AWK, sono contentissimo!
    codice:
    $ echo "/path/" | awk '/^\/.*[^\/]$/ {print $1}'
    Se non ti piace questa soluzione (stampa la riga argomento di echo se e` OK, non stampa nulla altrimenti), penso tu possa
    riciclare la regexp come preferisci

    Vabbeh, sull'onda dell'entusiasmo spiego anche la regexp:
    codice:
    /^\/.*[^\/]$/
    La regex dev'essere racchiusa tra due caratteri di '/'

    Significa:
    "qualsiasi stringa che inizia per '/', contiene un numero qualsiasi di caratteri e non termina per '/'"

    E` composta da tre elementi:
    codice:
    ^\/
    ovvero, "inizia per '/'". Ho aggiunto l'escape '\' per non far interpretare il carattere che delimita l'inzio della stringa per delimitatore della regexp

    codice:
    .*
    ovvero, "contiene un numero qualsiasi di caratteri"

    codice:
    [^\/]$
    ovvero, "non finisce per '/'", con le stesse considerazioni suddette per l'escape.

    Per spiegazioni migliori e piu` approfondite,
    http://www.gnu.org/software/gawk/man...xp%20Operators
    "Qualsiasi esperto ha paura di combattere usando la katana vera. Anch'io. Ma non ignoro la mia paura, riesco ad accettarla, e a metterla da parte accanto a me".

  3. #3
    Ikitt piano con le faccine, non vorrei che facessi indigestione questa sera
    "Non è Dio a impensierirmi, sono i suoi hooligan."

    pollycoke.wordpress.com

  4. #4
    Originariamente inviato da GiorgioM
    Ikitt piano con le faccine, non vorrei che facessi indigestione questa sera
    Un tempo ne ero molto piu` prodigo, che ti credi?
    "Qualsiasi esperto ha paura di combattere usando la katana vera. Anch'io. Ma non ignoro la mia paura, riesco ad accettarla, e a metterla da parte accanto a me".

  5. #5
    Originariamente inviato da Ikitt
    Un tempo ne ero molto piu` prodigo, che ti credi?
    Ahhh i bei tempi :quipy: :sospiro:

    Giusto per non essere troppo OT do anche io la mia versione

    echo "/path/" | perl -pe 's/\/$//' -
    "Non è Dio a impensierirmi, sono i suoi hooligan."

    pollycoke.wordpress.com

  6. #6
    ok grazie a entrambi.
    ora però mi servirebbe sapere come eliminare dalla stringa quello / alla fine!
    pensavo di usare il cut ma non so come calcolare la lunghezza di una stringa
    come fo?

  7. #7
    Originariamente inviato da Malyftw
    ok grazie a entrambi.
    ora pero mi servirebbe sapere come eliminare dalla stringa quello / alla fine!
    pensavo di usare il cut ma non so come calcolare la lunghezza di una stringa
    come fo?
    Si puo` fare senza tanti patemi con GNU cut e un'opzione che non ricordo, sul manuale c'e` scritto, si tratta di stampare il campo meno l'ultimo carattere e si puo`, appunto, fare direttamentente.
    "Qualsiasi esperto ha paura di combattere usando la katana vera. Anch'io. Ma non ignoro la mia paura, riesco ad accettarla, e a metterla da parte accanto a me".

  8. #8
    in rete ho tovato che si può usare wc -m per contare il numero di caratteri, poi uso il cut per prenderli tutti tranne l'ultimo

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.