Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 18
  1. #1

    Recuperare stringa tra due limitatori

    Ciao, all'interno di un file di testo avrei la necessita' di recuperare una stringa all'interno di due delimitatori.

    Tipo:

    [ciao]
    Quello che mi serve
    [/ciao]

    I delimitatori NON stanno sulla stessa riga di "quello che mi serve" e per ogni file ci sono piu' delimitatori (tutti diversi), io dovrei recuperare quello che sta tra [ciao]e[/ciao] e metterlo in un altro file di testo.

    Are you alive?
    No, but I was written with LOVE. A new scripting language.
    www.frequenze.it

  2. #2
    prima soluzione che mi viene in mente:
    cerchi la riga di [ciao]
    cerchi la riga di [/ciao]
    e prendi quelle in mezzo
    @_=(115,-17,6);print+map{chr$_[$.=$_-$_]*$_**$.+++$_[$.]*$_**$.+++$_[$.]*$_**$.}$.-$...$#_

  3. #3
    Utente di HTML.it
    Registrato dal
    Feb 2002
    Messaggi
    1,798
    codice:
    sergio@winnie:~$ cat file
    [a]
    riga1
    [/a]
    [c]
    riga2
    [/c]
    [d]
    riga3
    [/d]
    
    sergio@winnie:~$ grep -e "\[.*\]" file
    [a]
    [/a]
    [c]
    [/c]
    [d]
    [/d]
    
    sergio@winnie:~$ grep -v -e "\[.*\]" file
    riga1
    riga2
    riga3
    Ho evidenziato quello che potrebbe fare al caso tuo.

    Ciao.
    Slack? Smack!

  4. #4
    Originariamente inviato da adarkar
    prima soluzione che mi viene in mente:
    cerchi la riga di [ciao]
    cerchi la riga di [/ciao]
    e prendi quelle in mezzo
    Come faccio a prendere quelle in mezzo???
    Are you alive?
    No, but I was written with LOVE. A new scripting language.
    www.frequenze.it

  5. #5
    Utente di HTML.it
    Registrato dal
    Feb 2002
    Messaggi
    1,798
    Sig. Mutato, cosa ne pensa della soluzione che ho proposto?
    Saluti.
    Slack? Smack!

  6. #6
    Ciao, il problema della tua soluzione e' che non mi permette di delitare la stringa.

    Nel senso che io ho la necessita' di aveve solo le righe comprese tra [a] ed [/a] ad esempio, anzi il contenuto di [a][/a], tipo:

    [a]jdhjkhsjfhsjk
    sfòlkslòkflòskf
    slkjsfkjklsjf

    sfksllkfkslòksòlfklòkòlsk
    sfàòlsòàlfàòslf
    [/a]

    mentre quello che proponi restituisce tutte le righe tra[*][/*], escludendo per altro il contenuto che delle righe
    [*]jhdgjhgjhfgsjh
    kjhkjhdfkjshf[/*]

    Are you alive?
    No, but I was written with LOVE. A new scripting language.
    www.frequenze.it

  7. #7
    Utente di HTML.it
    Registrato dal
    Feb 2002
    Messaggi
    1,798
    Scusa, ma non ho capito cosa intendi; mi pare che il grep
    che ti ho messo in grassetto escludeva i delimitatori e
    restituiva solo le stringhe! Abbi pazienza, sono duro
    a capire le cose, ma se posso darti una mano, ben venga!

    ciao.
    Slack? Smack!

  8. #8
    Ho un file fatto tipo

    codice:
    [a]kjhkjhkjfhks kjsh kjfh ksjh 
    fkjsh kjfh skjh fkjhs fkjh kj fhkjs 
    hfkjhs kjfh ksjhf kjs hfkj hskj fhkjhs hskfh ksjhf kjsh fkj hskjhfkjsh fkjhs fkjh skjfh kjsh fkjhs fkjhs kjfh s[/a]
    
    [n]QUESTO MI SERVE
    [/n]
    
    [c]
    klfjflkgjlkdjglkjdglkjdlkjglkdjlkdj
    [/c]
    A me serve quello che c'e' tra [n]e[/n], ma non so se i delimitatori sono sulla stessa riga del testo, oppure no e tutto il resto non mi serve.

    Se fosse un XML direi che devo recuperare un nodo <n></n>... e' piu' chiaro?
    Are you alive?
    No, but I was written with LOVE. A new scripting language.
    www.frequenze.it

  9. #9
    Utente di HTML.it
    Registrato dal
    Feb 2002
    Messaggi
    1,798
    Uhm, penso di aver capito.
    Ma sti benedetti delimitatori, stanno sulla stessa riga
    della stringa "QUELLO CHE MI SERVE" oppure sono su righe
    diverse?

    ciao.
    Slack? Smack!

  10. #10
    Originariamente inviato da Mutato
    Come faccio a prendere quelle in mezzo???
    io avevo pensato a qualcosa di bashese:
    for (( i=$num_prima_riga ; $i < $num_ultima_riga ; $i++ ))
    eccetera
    perà se in una riga oltre al delimitatore c'è ache del testo "buono" così non va più bene.. :/
    nn saprei
    @_=(115,-17,6);print+map{chr$_[$.=$_-$_]*$_**$.+++$_[$.]*$_**$.+++$_[$.]*$_**$.}$.-$...$#_

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 © 2026 vBulletin Solutions, Inc. All rights reserved.