[Risolto]Modificare linee che, visto il contenuto di una variabile, sono uguali

Linguaggi di programmazione: php, perl, python, C, bash e tutti gli altri.
Scrivi risposta
Avatar utente
eb-ash
Prode Principiante
Messaggi: 204
Iscrizione: lunedì 18 febbraio 2019, 18:02
Sesso: Maschile

[Risolto]Modificare linee che, visto il contenuto di una variabile, sono uguali

Messaggio da eb-ash »

Coem da titolo vorrei ottenere questo risultato, avendo una variabile e del testo

Ad es.:

Codice: Seleziona tutto

CONGIUNZIONI="e|Und"
Pippo e Paperino
Pippo Und Paperino
Pippo e Gambadilegno
Topolino Und Paperino"


Output desiderato:

Pippo (Varie Congiunzioni) Paperino
Pippo (Varie Congiunzioni) Paperino
Pippo e Gambadilegno
Topolino Und Paperino



Non so se il titolo sia molto chiaro... sic. :shy:
Ultima modifica di eb-ash il venerdì 19 marzo 2021, 11:23, modificato 1 volta in totale.
si è vero uso un mac. Ma detesto i maccisti del web. Se la tirano, non ti aiutano, sono abituati ad avere la pappa fatta e non costruirsi le cose, e sono troppo pochi... quando serve non ci sono mai. Voglio imparare un po' di Bash per fare tante cose utili perchè questo sono qua... senza formazione specifica ma in fondo è unix che permette di fare le cose a pezzetti, no?
Avatar utente
vaeVictis
Imperturbabile Insigne
Imperturbabile Insigne
Messaggi: 4703
Iscrizione: venerdì 27 luglio 2012, 17:58
Desktop: Gnome
Distribuzione: Ubuntu 20.04 64bit

Re: Modificare linee che, visto il contenuto di una variabile, sono uguali

Messaggio da vaeVictis »

Codice: Seleziona tutto

echo "Pippo e Paperino
Pippo Und Paperino" | sed 's/e\|und/BUUM/i'
Pippo BUUM Paperino
Pippo BUUM Paperino
Pirates arrrrrrrrrrr awesome!!!
«I fear not the man who has practiced 10000 kicks once,
but I fear the man who has practiced one kick 10000 times.»
Avatar utente
eb-ash
Prode Principiante
Messaggi: 204
Iscrizione: lunedì 18 febbraio 2019, 18:02
Sesso: Maschile

Re: Modificare linee che, visto il contenuto di una variabile, sono uguali

Messaggio da eb-ash »

Non fa quanto necessario perchè dovrebbe lavorare solo se ci sono 2 o + linee che hanno le stesse parole intorno ai contenuti della Variabile.
si è vero uso un mac. Ma detesto i maccisti del web. Se la tirano, non ti aiutano, sono abituati ad avere la pappa fatta e non costruirsi le cose, e sono troppo pochi... quando serve non ci sono mai. Voglio imparare un po' di Bash per fare tante cose utili perchè questo sono qua... senza formazione specifica ma in fondo è unix che permette di fare le cose a pezzetti, no?
Avatar utente
vaeVictis
Imperturbabile Insigne
Imperturbabile Insigne
Messaggi: 4703
Iscrizione: venerdì 27 luglio 2012, 17:58
Desktop: Gnome
Distribuzione: Ubuntu 20.04 64bit

Re: Modificare linee che, visto il contenuto di una variabile, sono uguali

Messaggio da vaeVictis »

Non trovo la spiegazione molto chiara. Scusami.
Pirates arrrrrrrrrrr awesome!!!
«I fear not the man who has practiced 10000 kicks once,
but I fear the man who has practiced one kick 10000 times.»
rai
Imperturbabile Insigne
Imperturbabile Insigne
Messaggi: 2842
Iscrizione: domenica 11 maggio 2008, 18:03
Desktop: plasma
Distribuzione: 22.04
Località: Palermo

Re: Modificare linee che, visto il contenuto di una variabile, sono uguali

Messaggio da rai »

Caro eb-bash, non voglio risultare offensivo ma è da più di due anni che hai iniziato a richiedere aiuto in questa sezione: nella quarantina di discussioni aperte, chi è intervenuto per risponderti ha dovuto fare uno sforzo aggiuntivo per riuscire a farti esprimere il contesto, i termini e il risultato voluto. Suggerisco di provare a formalizzare un minimo la questione prima di scrivere, sarà più facile ottenere aiuto.

Questo è lo sforzo che ho fatto io di capire la tua richiesta, ti corrisponde?

Codice: Seleziona tutto

Ho un testo le cui righe hanno questa struttura: STRINGA_A SEP STRINGA_B
Ho una espressione regolare così fatta: "xx|yy"
devo scorrere le righe del testo e per ogni riga:
   acquisire in memoria STRINGA_A e STRINGA_B
   verificare sulle righe successive la corrispondenza del pattern 'STRINGA_A "xx|yy" STRINGA_B'
   Se esistono righe che matchano 
       devo sostituirvi SEP con SOSTITUTO
       la stessa sostituzione devo fare nella riga attuale prima di passare alla successiva
Avatar utente
eb-ash
Prode Principiante
Messaggi: 204
Iscrizione: lunedì 18 febbraio 2019, 18:02
Sesso: Maschile

Re: Modificare linee che, visto il contenuto di una variabile, sono uguali

Messaggio da eb-ash »

rai ha scritto:
domenica 14 marzo 2021, 12:39
Caro eb-bash, non voglio risultare offensivo ma è da più di due anni che hai iniziato a richiedere aiuto in questa sezione: nella quarantina di discussioni aperte, chi è intervenuto per risponderti ha dovuto fare uno sforzo aggiuntivo per riuscire a farti esprimere il contesto, i termini e il risultato voluto. Suggerisco di provare a formalizzare un minimo la questione prima di scrivere, sarà più facile ottenere aiuto.

Questo è lo sforzo che ho fatto io di capire la tua richiesta, ti corrisponde?

Codice: Seleziona tutto

Ho un testo le cui righe hanno questa struttura: STRINGA_A SEP STRINGA_B
Ho una espressione regolare così fatta: "xx|yy"
devo scorrere le righe del testo e per ogni riga:
   acquisire in memoria STRINGA_A e STRINGA_B
   verificare sulle righe successive la corrispondenza del pattern 'STRINGA_A "xx|yy" STRINGA_B'
   Se esistono righe che matchano 
       devo sostituirvi SEP con SOSTITUTO
       la stessa sostituzione devo fare nella riga attuale prima di passare alla successiva
Sì, direi che corrisponde... No, non mi sento offeso ( :cry: :shy: ) non è vero... ma sono grato a tutti quanti mi hanno aiutato finora, quindi capisco.
Non ho una formazione tecnico-scientifica quindi non sono abituato a formalizzare i problemi in questo modo ma se fai caso ho cercato di farlo con il linguaggio dei colori...
ma d'ora in poi cercherò di applicare questo metodo, promesso!

MI pare di capire che serva un ciclo, giusto? Nel caso tieni presente che è una cosa che finora non mi è mai servita quindi non l'ho mai imparata.
si è vero uso un mac. Ma detesto i maccisti del web. Se la tirano, non ti aiutano, sono abituati ad avere la pappa fatta e non costruirsi le cose, e sono troppo pochi... quando serve non ci sono mai. Voglio imparare un po' di Bash per fare tante cose utili perchè questo sono qua... senza formazione specifica ma in fondo è unix che permette di fare le cose a pezzetti, no?
Pike
Rampante Reduce
Rampante Reduce
Messaggi: 5460
Iscrizione: domenica 20 gennaio 2008, 1:13
Desktop: Kubuntu
Distribuzione: 20.04 x64
Contatti:

Re: Modificare linee che, visto il contenuto di una variabile, sono uguali

Messaggio da Pike »

Proverò di tradurre in modo meno.. "sintetico" di formalizzare.
Devi rendere il problema semplice da comprendere. Cioè più che scrivere qualcosa di più esteso, comprensibile e dettalgiato di "voglio fare così".
e' utile scrivere
alcuni dati di esempio, possibilmente più di due o tre e che contengano un numero sufficiente tra i casi da te possibili e desiderati d'intervento
Inserire i vari casi in cui vuoi che venga fatto qualcosa (con esempio di risultato)
inserire i vari casi in cui vuoi che venga fatto altro (con esempio di risultato)
inserire i vari casi in cui vuoi che non venga fatto nulla

Da questa più lunga, dettagliata e referenziata descrizione del problema è più veloce, semplice ed efficace comprenderlo e strutturare suggerimenti di soluzione.
Sono colui che fa cose che non servono...
Secondo Principio di Dilbert, di Scott Adams. "Si parte dalla certezza che siamo tutti idioti". Ed alcuni su questo mi ab-battono alla grande.
Come certificato dalla moderazione, incivile e maleducato. You have been warned.
Avatar utente
vaeVictis
Imperturbabile Insigne
Imperturbabile Insigne
Messaggi: 4703
Iscrizione: venerdì 27 luglio 2012, 17:58
Desktop: Gnome
Distribuzione: Ubuntu 20.04 64bit

Re: Modificare linee che, visto il contenuto di una variabile, sono uguali

Messaggio da vaeVictis »

En passant, bisogna usare qualcosa di più complesso di sed, vedi awk.
Pirates arrrrrrrrrrr awesome!!!
«I fear not the man who has practiced 10000 kicks once,
but I fear the man who has practiced one kick 10000 times.»
Avatar utente
vaeVictis
Imperturbabile Insigne
Imperturbabile Insigne
Messaggi: 4703
Iscrizione: venerdì 27 luglio 2012, 17:58
Desktop: Gnome
Distribuzione: Ubuntu 20.04 64bit

Re: Modificare linee che, visto il contenuto di una variabile, sono uguali

Messaggio da vaeVictis »

Ma quindi?
Questi esempi per capire?
Pirates arrrrrrrrrrr awesome!!!
«I fear not the man who has practiced 10000 kicks once,
but I fear the man who has practiced one kick 10000 times.»
rai
Imperturbabile Insigne
Imperturbabile Insigne
Messaggi: 2842
Iscrizione: domenica 11 maggio 2008, 18:03
Desktop: plasma
Distribuzione: 22.04
Località: Palermo

Re: Modificare linee che, visto il contenuto di una variabile, sono uguali

Messaggio da rai »

eb-ash ha scritto:
lunedì 15 marzo 2021, 13:45
rai ha scritto:
domenica 14 marzo 2021, 12:39
Caro eb-bash, non voglio risultare offensivo ma è da più di due anni che hai iniziato a richiedere aiuto in questa sezione: nella quarantina di discussioni aperte, chi è intervenuto per risponderti ha dovuto fare uno sforzo aggiuntivo per riuscire a farti esprimere il contesto, i termini e il risultato voluto. Suggerisco di provare a formalizzare un minimo la questione prima di scrivere, sarà più facile ottenere aiuto.

Questo è lo sforzo che ho fatto io di capire la tua richiesta, ti corrisponde?

Codice: Seleziona tutto

Ho un testo le cui righe hanno questa struttura: STRINGA_A SEP STRINGA_B
Ho una espressione regolare così fatta: "xx|yy"
devo scorrere le righe del testo e per ogni riga:
   acquisire in memoria STRINGA_A e STRINGA_B
   verificare sulle righe successive la corrispondenza del pattern 'STRINGA_A "xx|yy" STRINGA_B'
   Se esistono righe che matchano 
       devo sostituirvi SEP con SOSTITUTO
       la stessa sostituzione devo fare nella riga attuale prima di passare alla successiva
Sì, direi che corrisponde...
Allora io butto giù una soluzione possibile sulla base di quello che allo stato attuale sappiamo e ammettendo che il testo sia di questo tipo:

Codice: Seleziona tutto

$ cat testo.txt
Pippo e Paperino
Pippo Und Paperino
Pippo e Gambadilegno
Topolino Und Paperino
Macchianera e Basettoni
Gambadilegno o Trudy
Gambadilegno e Trudy
Paperon de' Paperoni Und Banda Bassotti
Paperon de' Paperoni e Banda Bassotti
Pippo o Paperino
Qui, Quo, Qua Und Archimede Pitagorico
Qui, Quo, Qua e Archimede Pitagorico
$

Codice: Seleziona tutto

$ awk -F " e | Und " 'FNR==NR && / e | Und /{a[$0]=$0; cnt[$1$2]++ ;next} {if ($0 in a && cnt[$1$2]>1) {print $1 " SOSTITUTO " $2} }' testo.txt  testo.txt
Pippo SOSTITUTO Paperino
Pippo SOSTITUTO Paperino
Paperon de' Paperoni SOSTITUTO Banda Bassotti
Paperon de' Paperoni SOSTITUTO Banda Bassotti
Qui, Quo, Qua SOSTITUTO Archimede Pitagorico
Qui, Quo, Qua SOSTITUTO Archimede Pitagorico
$
Avatar utente
eb-ash
Prode Principiante
Messaggi: 204
Iscrizione: lunedì 18 febbraio 2019, 18:02
Sesso: Maschile

Re: Modificare linee che, visto il contenuto di una variabile, sono uguali

Messaggio da eb-ash »

Grazie, Vae! E' esattamente quello che mi serviva!!

Ma ho un problema con il next perchè non dava nessun risultato. Ho provato a toglierlo:

Codice: Seleziona tutto

VARIABILE="Pippo e Paperino
Pippo Und Paperino
Pippo e Gambadilegno
Topolino Und Paperino
Macchianera e Basettoni
Gambadilegno o Trudy
Gambadilegno e Trudy
Paperon de' Paperoni Und Banda Bassotti
Paperon de' Paperoni e Banda Bassotti
Pippo o Paperino
Qui, Quo, Qua Und Archimede Pitagorico
Qui, Quo, Qua e Archimede Pitagorico"

Codice: Seleziona tutto

awk -F " e | Und " 'FNR==NR && / e | Und /{a[$0]=$0; cnt[$1$2]++ ;} {if ($0 in a && cnt[$1$2]>1) {print $1 " SOSTITUTO " $2} }' <<< "$VARIABILE"
e mi da:

Codice: Seleziona tutto

Pippo SOSTITUTO Paperino
Paperon de' Paperoni SOSTITUTO Banda Bassotti
Qui, Quo, Qua SOSTITUTO Archimede Pitagorico

mancano le linee doppie come hai fatto tu con il next.

Mi sarebbe molto utile anche stampare tutte le linee non sostituite (se possibile) l'ideale desiderato sarebbe:

Codice: Seleziona tutto

Pippo SOSTITUTO Paperino
Pippo SOSTITUTO Paperino
Pippo e Gambadilegno
Topolino Und Paperino
Macchianera e Basettoni
Gambadilegno o Trudy
Gambadilegno e Trudy
Paperon de' Paperoni SOSTITUTO Banda Bassotti
Paperon de' Paperoni SOSTITUTO Banda Bassotti
Pippo o Paperino
Qui, Quo, Qua SOSTITUTO Archimede Pitagorico
Qui, Quo, Qua SOSTITUTO Archimede Pitagorico
si è vero uso un mac. Ma detesto i maccisti del web. Se la tirano, non ti aiutano, sono abituati ad avere la pappa fatta e non costruirsi le cose, e sono troppo pochi... quando serve non ci sono mai. Voglio imparare un po' di Bash per fare tante cose utili perchè questo sono qua... senza formazione specifica ma in fondo è unix che permette di fare le cose a pezzetti, no?
Avatar utente
vaeVictis
Imperturbabile Insigne
Imperturbabile Insigne
Messaggi: 4703
Iscrizione: venerdì 27 luglio 2012, 17:58
Desktop: Gnome
Distribuzione: Ubuntu 20.04 64bit

Re: Modificare linee che, visto il contenuto di una variabile, sono uguali

Messaggio da vaeVictis »

eb-ash ha scritto:
mercoledì 17 marzo 2021, 13:37
Grazie, Vae!
Prego prego. Ma la soluzione è di rai, non mia.
Pirates arrrrrrrrrrr awesome!!!
«I fear not the man who has practiced 10000 kicks once,
but I fear the man who has practiced one kick 10000 times.»
Avatar utente
LaLampada
Prode Principiante
Messaggi: 192
Iscrizione: sabato 7 dicembre 2019, 14:50
Desktop: gnome
Distribuzione: Arch Linux
Sesso: Maschile

Re: Modificare linee che, visto il contenuto di una variabile, sono uguali

Messaggio da LaLampada »

non ho capito cosa vuoi fare

cmq :

Codice: Seleziona tutto

sed -i 's/testo da sostituire/nuovo testo/g' file.txt
Dell XPS 8940; Processore Intel® Core™ i7-10700 CPU @ 2.90GHz; Grafica NVidia GeForce GTX 1660 Ti; Arch Linux
Dell Inc. XPS 15 9520; Processore 12th Gen Intel® Core™ i7-12700H × 20; Grafica NVidia GeForce RTX 3050 ti mobile; Arch Linux
rai
Imperturbabile Insigne
Imperturbabile Insigne
Messaggi: 2842
Iscrizione: domenica 11 maggio 2008, 18:03
Desktop: plasma
Distribuzione: 22.04
Località: Palermo

Re: Modificare linee che, visto il contenuto di una variabile, sono uguali

Messaggio da rai »

eb-bash ha scritto:Ma ho un problema con il next perchè non dava nessun risultato.
mi spiace, deve dipendere da come è compilato l'awk che usi. Qui su ubuntu 20.04 funziona come ho postato prima (uso il mawk standard che è 1.3.4)
mancano le linee doppie come hai fatto tu con il next.
e certo, se modifichi il codice a muzzo ottieni comportamenti "inattesi" ma in realtà è normale così: next dice a awk di passare al record successivo senza eseguire il resto del codice: questo serve per creare i due array a[] e cnt[] che poi vengono usati per filtrare le righe di interesse qundo si esegue la seconda lettura sullo stesso file.
Invece tu dai in input a awk solo un volta il testo da modificare quindi così la cosa non può riuscire proprio
Avatar utente
eb-ash
Prode Principiante
Messaggi: 204
Iscrizione: lunedì 18 febbraio 2019, 18:02
Sesso: Maschile

Re: Modificare linee che, visto il contenuto di una variabile, sono uguali

Messaggio da eb-ash »

rai ha scritto:
mercoledì 17 marzo 2021, 18:35
mi spiace, deve dipendere da come è compilato l'awk che usi. Qui su ubuntu 20.04 funziona come ho postato prima (uso il mawk standard che è 1.3.4)
Può succedere, io uso il gawk 5.0.0 dato che uso il mac.
rai ha scritto:
mercoledì 17 marzo 2021, 18:35
e certo, se modifichi il codice a muzzo ottieni comportamenti "inattesi" ma in realtà è normale così: next dice a awk di passare al record successivo senza eseguire il resto del codice: questo serve per creare i due array a[] e cnt[] che poi vengono usati per filtrare le righe di interesse qundo si esegue la seconda lettura sullo stesso file.
Invece tu dai in input a awk solo un volta il testo da modificare quindi così la cosa non può riuscire proprio
Mi studierò come adattare il codice. Almeno ho fatto dei passi in avanti. Grazie anche per la spiegazione del funzionamento.
si è vero uso un mac. Ma detesto i maccisti del web. Se la tirano, non ti aiutano, sono abituati ad avere la pappa fatta e non costruirsi le cose, e sono troppo pochi... quando serve non ci sono mai. Voglio imparare un po' di Bash per fare tante cose utili perchè questo sono qua... senza formazione specifica ma in fondo è unix che permette di fare le cose a pezzetti, no?
rai
Imperturbabile Insigne
Imperturbabile Insigne
Messaggi: 2842
Iscrizione: domenica 11 maggio 2008, 18:03
Desktop: plasma
Distribuzione: 22.04
Località: Palermo

Re: Modificare linee che, visto il contenuto di una variabile, sono uguali

Messaggio da rai »

Può succedere, io uso il gawk 5.0.0 dato che uso il mac.
No, se stai usando GNUawk non può succedere. Deve funzionare per forza. Starai facendo qualche diverso errore.
Io sto andando a lavoro e non posso aiutarti. Se nessuno interviene prima ci leggiamo più tardi.
rai
Imperturbabile Insigne
Imperturbabile Insigne
Messaggi: 2842
Iscrizione: domenica 11 maggio 2008, 18:03
Desktop: plasma
Distribuzione: 22.04
Località: Palermo

Re: Modificare linee che, visto il contenuto di una variabile, sono uguali

Messaggio da rai »

Per il fatto che quel codice non funzioni come previsto (e dando per scontato che tu abbia fatto prima di tutto una prova "copia e incolla" di quello che ho postato), oltre a quanto già detto, intravedo due possibili problemi entrambi legati al fatto che usiamo piattaforme diverse: la shell e/o awk.
Se invece di usare come input un file devi passare il testo da stdin si può usare la process substitution (evito le HereString che tu usi e con cui io ho spesso difficoltà)
Uso due diverse process substitution perchè ad awk devo dare la nozione di due stream successivi sui quali dovrà comportarsi diversamente.
Ho aggiunto la stampa delle righe immodificate.

Codice: Seleziona tutto

$ var=" SOSTITUTO "
$ testo="Pippo e Paperino
Pippo Und Paperino
Pippo e Gambadilegno
Topolino Und Paperino
Macchianera e Basettoni
Gambadilegno o Trudy
Gambadilegno e Trudy
Paperon de' Paperoni Und Banda Bassotti
Paperon de' Paperoni e Banda Bassotti
Pippo o Paperino
Qui, Quo, Qua Und Archimede Pitagorico
Qui, Quo, Qua e Archimede Pitagorico"
$
$ awk -v var="$var" -F " e | Und " 'FNR==NR && / e | Und /{a[$0]=$0; cnt[$1$2]++ ;next} {if ($0 in a && cnt[$1$2]>1) {print $1 var $2} else {print}}' <(echo "$testo") <(echo "$testo")
Gambadilegno o Trudy
Pippo o Paperino
Pippo SOSTITUTO Paperino
Pippo SOSTITUTO Paperino
Pippo e Gambadilegno
Topolino Und Paperino
Macchianera e Basettoni
Gambadilegno o Trudy
Gambadilegno e Trudy
Paperon de' Paperoni SOSTITUTO Banda Bassotti
Paperon de' Paperoni SOSTITUTO Banda Bassotti
Pippo o Paperino
Qui, Quo, Qua SOSTITUTO Archimede Pitagorico
Qui, Quo, Qua SOSTITUTO Archimede Pitagorico
$ 
Il fatto è che non so se questa process substitution sia supportata nella shell del Mac (zsh?); se ancora hai difficoltà a fare funzionare quel codice, fai una prova così:

Codice: Seleziona tutto

$ awk 'FNR==NR {print $1; next}{print $2}' <(echo "$testo") <(echo "$testo")
Pippo
Pippo
Pippo
Topolino
Macchianera
Gambadilegno
Gambadilegno
Paperon
Paperon
Pippo
Qui,
Qui,

e
Und
e
Und
e
o
e
de'
de'
o
Quo,
Quo,
se così ottieni lo stesso mio output vuol dire che l'eventuale problema non sta nella shell
Avatar utente
eb-ash
Prode Principiante
Messaggi: 204
Iscrizione: lunedì 18 febbraio 2019, 18:02
Sesso: Maschile

Re: Modificare linee che, visto il contenuto di una variabile, sono uguali

Messaggio da eb-ash »

rai ha scritto:
venerdì 19 marzo 2021, 8:33
Per il fatto che quel codice non funzioni come previsto (e dando per scontato che tu abbia fatto prima di tutto una prova "copia e incolla" di quello che ho postato), oltre a quanto già detto, intravedo due possibili problemi entrambi legati al fatto che usiamo piattaforme diverse: la shell e/o awk.
Se invece di usare come input un file devi passare il testo da stdin si può usare la process substitution (evito le HereString che tu usi e con cui io ho spesso difficoltà)
Uso due diverse process substitution perchè ad awk devo dare la nozione di due stream successivi sui quali dovrà comportarsi diversamente.
Ho aggiunto la stampa delle righe immodificate.

Codice: Seleziona tutto

$ var=" SOSTITUTO "
$ testo="Pippo e Paperino
Pippo Und Paperino
Pippo e Gambadilegno
Topolino Und Paperino
Macchianera e Basettoni
Gambadilegno o Trudy
Gambadilegno e Trudy
Paperon de' Paperoni Und Banda Bassotti
Paperon de' Paperoni e Banda Bassotti
Pippo o Paperino
Qui, Quo, Qua Und Archimede Pitagorico
Qui, Quo, Qua e Archimede Pitagorico"
$
$ awk -v var="$var" -F " e | Und " 'FNR==NR && / e | Und /{a[$0]=$0; cnt[$1$2]++ ;next} {if ($0 in a && cnt[$1$2]>1) {print $1 var $2} else {print}}' <(echo "$testo") <(echo "$testo")
Gambadilegno o Trudy
Pippo o Paperino
Pippo SOSTITUTO Paperino
Pippo SOSTITUTO Paperino
Pippo e Gambadilegno
Topolino Und Paperino
Macchianera e Basettoni
Gambadilegno o Trudy
Gambadilegno e Trudy
Paperon de' Paperoni SOSTITUTO Banda Bassotti
Paperon de' Paperoni SOSTITUTO Banda Bassotti
Pippo o Paperino
Qui, Quo, Qua SOSTITUTO Archimede Pitagorico
Qui, Quo, Qua SOSTITUTO Archimede Pitagorico
$ 
E' andato benissimo! Ti confermo che anche a me la Herestring non va con questo comando awk.

La shell che uso io è Bash non Zsh la versione di sistema più recente è passata a zsh ma io uso una versione meno aggiornata.

Grazie 1000 rai, per le risposte complete! :woot: :woot: :woot:
si è vero uso un mac. Ma detesto i maccisti del web. Se la tirano, non ti aiutano, sono abituati ad avere la pappa fatta e non costruirsi le cose, e sono troppo pochi... quando serve non ci sono mai. Voglio imparare un po' di Bash per fare tante cose utili perchè questo sono qua... senza formazione specifica ma in fondo è unix che permette di fare le cose a pezzetti, no?
rai
Imperturbabile Insigne
Imperturbabile Insigne
Messaggi: 2842
Iscrizione: domenica 11 maggio 2008, 18:03
Desktop: plasma
Distribuzione: 22.04
Località: Palermo

Re: [Risolto]Modificare linee che, visto il contenuto di una variabile, sono uguali

Messaggio da rai »

E' andato benissimo!
Dato che a parte l'input da file non è cambiato nulla, questo vuol dire che non è vero che avevi provato a usare esattamente il mio codice :muro:

Per il futuro ti consiglio di partire da una situazione sicuramente funzionante, anche se non perfettamente rispondente alla tua specifica situazione (copy&paste di quello che gentilmente ti viene offerto) e magari studiarti il come e il perchè funziona.
Solo dopo provare a perfezionarla, un solo dettaglio alla volta:
funziona? -> bene ho imparato una cosa e ora faccio un altro passetto
non funge? -> torno indietro e studio di scoprire perchè

Guarda che, eccetto pochi genii, fanno tutti così
Modificare o eliminare un token di cui non capisci il ruolo nel contesto del codice e sperare che il risultato sia quello che vuoi è ... ottimismo della volontà ma poco realistico
:ciao:
Avatar utente
eb-ash
Prode Principiante
Messaggi: 204
Iscrizione: lunedì 18 febbraio 2019, 18:02
Sesso: Maschile

Re: [Risolto]Modificare linee che, visto il contenuto di una variabile, sono uguali

Messaggio da eb-ash »

rai ha scritto:
venerdì 19 marzo 2021, 17:08
E' andato benissimo!
Dato che a parte l'input da file non è cambiato nulla, questo vuol dire che non è vero che avevi provato a usare esattamente il mio codice :muro:

Per il futuro ti consiglio di partire da una situazione sicuramente funzionante, anche se non perfettamente rispondente alla tua specifica situazione (copy&paste di quello che gentilmente ti viene offerto) e magari studiarti il come e il perchè funziona.
Solo dopo provare a perfezionarla, un solo dettaglio alla volta:
funziona? -> bene ho imparato una cosa e ora faccio un altro passetto
non funge? -> torno indietro e studio di scoprire perchè

Guarda che, eccetto pochi genii, fanno tutti così
Modificare o eliminare un token di cui non capisci il ruolo nel contesto del codice e sperare che il risultato sia quello che vuoi è ... ottimismo della volontà ma poco realistico
:ciao:

E' vero... :shy: :shy: perchè avevo sbagliato qualcosa nell'indirizzo del file ma siccome preferivo l'Herestrings e visto che questo non funzionava avevo pensato se non va in in un modo non va neanche nell'altro... (sono un po' disordinato... lo so :cry: ) Grazie!
si è vero uso un mac. Ma detesto i maccisti del web. Se la tirano, non ti aiutano, sono abituati ad avere la pappa fatta e non costruirsi le cose, e sono troppo pochi... quando serve non ci sono mai. Voglio imparare un po' di Bash per fare tante cose utili perchè questo sono qua... senza formazione specifica ma in fondo è unix che permette di fare le cose a pezzetti, no?
Scrivi risposta

Ritorna a “Programmazione”

Chi c’è in linea

Visualizzano questa sezione: 0 utenti iscritti e 13 ospiti