Vai al contenuto

Primario: Sky Slate Blackcurrant Watermelon Strawberry Orange Banana Apple Emerald Chocolate Marble
Secondario: Sky Slate Blackcurrant Watermelon Strawberry Orange Banana Apple Emerald Chocolate Marble
Sfondo: Blank Waves Squares Notes Sharp Wood Rockface Leather Honey Vertical Triangles
Corsi di Laurea










ROX @ Unisa - Forum degli studenti di Ingegneria utilizza i cookie. Se prosegui la navigazione accetti il loro uso.    Accetto l'uso dei cookie
-->
Foto

dubbio/problema con filtraggio stringa


  • Effettua l'accesso per rispondere
Questa discussione ha avuto 6 risposta/e

#1
Blackjack

Blackjack

    Moderatore globale

  • Moderatore
  • 2542 Messaggi:
salve, vorrei porre all'attenzione di chi se ne intende questo problema che mi sta assillando dal pomeriggio...

il problema è il seguente: presa una riga che mi è uscita facendo un grep -n voglio tagliare dalla riga tutto il contenuto e lasciare solo il nome del file e il numero di linea. in poche parole voglio che
percorso/file.c:25:stringa diventi file.c:25

è una cosa banalissima quando nella STRINGA non ci sono dei : o degli slash... in questo caso basta fare 2 filtraggi in sequenza del tipo:
match%:* per eliminare tutta la roba a destra dei secondi : (quelli dopo il numero per intenderci)
match##*/ per eliminare tutto il percorso iniziale

il problema è se ho ad esempio una cosa del tipo:
percorso/file.c:25:sono un/secchione:schifoso

in questo caso infatti il primo filtraggio mi farebbe uscire:
percorso/file.c:25:sono un/secchione
e il secondo invece taglierebbe tutto fino all'ultimo slash, facendo rimanere
secchione

come risolvere il problema? io avevo pensato a fare un ciclo while in cui ciclicamente taglio dei pezzi finchè non ottengo ciò che voglio però è un casino!!! aiutoooo :help: :help: :beg:


Immagine inviata
Immagine inviata
Immagine inviata

"L'amore è la capacità di avvertire il simile nel dissimile"

#2
zxzxasas

zxzxasas

    Advanced Member

  • Utente
  • StellaStellaStella
  • 789 Messaggi:
Mi sa che ti tocca usare sed e modellarti una regex!
Io mi chiedo chi ca**o me lo fa fare...

#3
Blackjack

Blackjack

    Moderatore globale

  • Moderatore
  • 2542 Messaggi:
il problema sono riuscito a risolverlo però con la sed sarebbe una cosa molto chic...

però il problema della sed è che se gli passo un argomento lui lo interpreta come pathname e non come la riga stessa su cui eseguire il filtraggio... forse sto sbagliando qualcosa di fondamentale :scratch: consigli?
Immagine inviata
Immagine inviata
Immagine inviata

"L'amore è la capacità di avvertire il simile nel dissimile"

#4
zxzxasas

zxzxasas

    Advanced Member

  • Utente
  • StellaStellaStella
  • 789 Messaggi:
Mi fai vedere un attimo la soluzione che hai usata e come vorresti implementare sed?
Io mi chiedo chi ca**o me lo fa fare...

#5
Blackjack

Blackjack

    Moderatore globale

  • Moderatore
  • 2542 Messaggi:
#funzione che esegue il filtraggio di righe fornite da un'istruzione grep -n; elimina il percorso del file dalla riga e il
#contenuto della riga stessa, lasciando solo il nome del file e il numero di riga
function filter() {

#inizializzazione delle variabili
file=S{1%%:*}"
row=S1
#ciclo while: si effettua un filtraggio ciclico finchè la riga non è uguale a Sfile
while [[ Srow != Sfile ]]; do
row1=Srow
row="S{row%:*}"
done

echo "S{row1##*/}" #eliminazione del percorso del file dalla riga
return
}

sostituito il dollaro con S sennò lo script scoccia -.-

per quanto riguarda la sed nn so proprio dove mettere mano, non mi ci sono proprio messo dato che ho un altro esamone lunedì
Immagine inviata
Immagine inviata
Immagine inviata

"L'amore è la capacità di avvertire il simile nel dissimile"

#6
Blackjack

Blackjack

    Moderatore globale

  • Moderatore
  • 2542 Messaggi:
up

:help: :help: :help:

il tempo per la consegna scade domani aiuto per favore :beg:
Immagine inviata
Immagine inviata
Immagine inviata

"L'amore è la capacità di avvertire il simile nel dissimile"

#7
zxzxasas

zxzxasas

    Advanced Member

  • Utente
  • StellaStellaStella
  • 789 Messaggi:
Non mi ricordo bene, non voglio farti fare stronzate!

Però prova a chiedere o su www.slacky.eu oppure sul canale IRC
server: irc.syrolnet.org
canale: #slackware

Poi se fammi sapere che sono curioso :D
Io mi chiedo chi ca**o me lo fa fare...




Leggono questa discussione 0 utenti

0 utenti, 0 ospiti, 0 utenti anonimi