Spostare stringhe e fare conteggio

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

Spostare stringhe e fare conteggio

Messaggio da eb-ash »

Ho

Codice: Seleziona tutto

Pippo: 2
Pippo pluto: 3
Paperino: 1
Topolino Pippo: 4


Vorrei ottenere

Codice: Seleziona tutto

Pippo (Pippo pluto): 5
Paperino: 1
Topolino Pippo: 4
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?
Lucio C
Scoppiettante Seguace
Scoppiettante Seguace
Messaggi: 363
Iscrizione: venerdì 10 dicembre 2021, 18:33
Desktop: fvwm
Distribuzione: (X)Ubuntu20@home; openSUSE42.3@work
Sesso: Maschile
Località: Paneropoli

Re: Spostare stringhe e fare conteggio

Messaggio da Lucio C »

eb-ash ha scritto:
sabato 11 febbraio 2023, 19:18
Ho
dove ? in un file ? in piu' file ? nell'output di grep ? in quello di uniq ?
The reasonable man adapts himself to the world: the unreasonable one persists in trying to adapt the world to himself. Therefore all progress depends on the unreasonable man. (G.B. Shaw)
Avatar utente
DoctorStrange
Imperturbabile Insigne
Imperturbabile Insigne
Messaggi: 2855
Iscrizione: mercoledì 14 ottobre 2015, 9:33
Desktop: Gnome3
Distribuzione: Ubuntu 22.04 LTS Jammy Jellyfish
Sesso: Maschile
Località: Roma, Italia

Re: Spostare stringhe e fare conteggio

Messaggio da DoctorStrange »

Sembra essere esattamente una left outer join. Con il dovuto beneficio del dubbio.
Avatar utente
eb-ash
Prode Principiante
Messaggi: 204
Iscrizione: lunedì 18 febbraio 2019, 18:02
Sesso: Maschile

Re: Spostare stringhe e fare conteggio

Messaggio da eb-ash »

Lucio C ha scritto:
sabato 11 febbraio 2023, 22:25
eb-ash ha scritto:
sabato 11 febbraio 2023, 19:18
Ho
dove ? in un file ? in piu' file ? nell'output di grep ? in quello di uniq ?
In un solo file.
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
Rafbor
Prode Principiante
Messaggi: 142
Iscrizione: domenica 13 febbraio 2022, 18:22
Desktop: Xubuntu
Distribuzione: 22.04.3 LTS
Località: Francia

Re: Spostare stringhe e fare conteggio

Messaggio da Rafbor »

Spiega meglio il procedimento per ottenere questo risultato, perché Pippo compare in 3 righe, e tu fai il raggruppamento solo su 2 righe, Pippo deve essere all'inizio ?
Quale linguaggio ?
Avatar utente
DoctorStrange
Imperturbabile Insigne
Imperturbabile Insigne
Messaggi: 2855
Iscrizione: mercoledì 14 ottobre 2015, 9:33
Desktop: Gnome3
Distribuzione: Ubuntu 22.04 LTS Jammy Jellyfish
Sesso: Maschile
Località: Roma, Italia

Re: Spostare stringhe e fare conteggio

Messaggio da DoctorStrange »

Pippo è la chiave in una mappa chiave-valore. Fare una left outer join su mappe chiave-valore di quel tipo dovrebbe generare proprio il risultato atteso.
Avatar utente
eb-ash
Prode Principiante
Messaggi: 204
Iscrizione: lunedì 18 febbraio 2019, 18:02
Sesso: Maschile

Re: Spostare stringhe e fare conteggio

Messaggio da eb-ash »

Rafbor ha scritto:
domenica 12 febbraio 2023, 6:49
Spiega meglio il procedimento per ottenere questo risultato, perché Pippo compare in 3 righe, e tu fai il raggruppamento solo su 2 righe, Pippo deve essere all'inizio ?
Quale linguaggio ?
Uso bash, ho uno script che fa una ricerca tra i miei file, tratta le stringhe dei titoli e fa un elenco delle stringhe, una su ogni linea in ordine alfabetico e le stringhe uguali le somma, l’output lo salvo come testo. Adesso desideto sommare le stringhe come nell’esempio (perché iniziando con la stessa parola fanno parte dello stesso gruppo). Quindi il comando deve riconoscere solo le stringhe che iniziano con la prima parola uguale e spostarle sulla stessa linea e fare la somma dei valori. Poi le stringhe aggiunte le vorrei mettere dentro una parentesi.
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
eb-ash
Prode Principiante
Messaggi: 204
Iscrizione: lunedì 18 febbraio 2019, 18:02
Sesso: Maschile

Re: Spostare stringhe e fare conteggio

Messaggio da eb-ash »

DoctorStrange ha scritto:
domenica 12 febbraio 2023, 10:29
Pippo è la chiave in una mappa chiave-valore. Fare una left outer join su mappe chiave-valore di quel tipo dovrebbe generare proprio il risultato atteso.
Esatto, ma solo se Pippo è la prima parola della stringa. Il risultato è il gruppo delle stringhe che inizia con la parola chiave.
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
Rafbor
Prode Principiante
Messaggi: 142
Iscrizione: domenica 13 febbraio 2022, 18:22
Desktop: Xubuntu
Distribuzione: 22.04.3 LTS
Località: Francia

Re: Spostare stringhe e fare conteggio

Messaggio da Rafbor »

bash non è il mio campo, lascio.
Avatar utente
nuzzopippo
Entusiasta Emergente
Entusiasta Emergente
Messaggi: 1624
Iscrizione: giovedì 12 ottobre 2006, 11:34

Re: Spostare stringhe e fare conteggio

Messaggio da nuzzopippo »

eb-ash ha scritto:
sabato 11 febbraio 2023, 19:18
Ho

Codice: Seleziona tutto

Pippo: 2
Pippo pluto: 3
Paperino: 1
Topolino Pippo: 4


Vorrei ottenere

Codice: Seleziona tutto

Pippo (Pippo pluto): 5
Paperino: 1
Topolino Pippo: 4
Occhio che sono terribilmente arrugginito sulla bash, comunque, ho giocato un po' con gli array facendo questo script

Codice: Seleziona tutto

#!/bin/bash

# Leggo e memorizzo in array le righe nomi
num=0
while read riga
do
    righe[$num]=$riga
    num=$(($num+1))
done < nomi
echo

num=$(($num-1))
i1=0
while [ $i1 -lt $num ]
do
    if [ "${righe[$i1]+abc}" ]  # verifico esistenza indice
    then
        IFS=':' read -a elem1 <<< ${righe[$i1]}
        val1=${elem1[$((${#elem1[@]}-1))]}
        IFS=' ' read -a parts <<< ${elem1[0]}
        control=${parts[0]}
        i2=$(($i1+1))
        match=0
        while [ $i2 -le $num ]
        do
            if [ "${righe[$i2]+abc}" ]
            then
                IFS=':' read -a elem2 <<< ${righe[$i2]}
                val2=${elem2[$((${#elem2[@]}-1))]}
                IFS=' ' read -a parts <<< ${elem2[0]}
                verify=${parts[0]}
                if [ $control = $verify ]
                then
                    match=1
                    elem1[0]="${elem1[0]} (${elem2[0]})"
                    val1=$(($val1+$val2))
                    unset righe[$i2]
                fi
                i2=$(($i2+1))
            else
                i2=$(($i2+1))
            fi
        done
        if [ $match -eq 1 ]
        then
            righe[$i1]="${elem1[0]}: $val1"
        fi
        i1=$((i1+1))
    else
        i1=$((i1+1))
    fi
done

i1=0
while [ $i1 -le $num ]
do
    if [ "${righe[$i1]+abc}" ]  # verifico esistenza indice
    then
        echo "${righe[i1]}" >> colletta_nomi
    fi
    i1=$(($i1+1))
done
Come evincerai dal codice, lo script legge da un file "nomi" i dati da esaminare, spezzetta i dati definendo il primo "campo" quale criterio di valutazione e se "control" e "verify" coincidono unisce i dati come da Te indicato.
Questa è la sessione di prova (finale) che sembra soddisfare la Tua richiesta

Codice: Seleziona tutto

NzP:~$ ls
leggi.sh  nomi
NzP:~$ cat nomi
Pippo: 2
Pippo pluto: 3
Paperino: 1
Pippo Minnie: 1
Topolino Pippo: 4
NzP:~$ ./leggi.sh

NzP:~$ ls
colletta_nomi  leggi.sh  nomi
NzP:~$ cat colletta_nomi
Pippo (Pippo pluto) (Pippo Minnie): 6
Paperino: 1
Topolino Pippo: 4
NzP:~$ 
Certamente può essere fatto molto meglio, ho solo spolverato un po' di ruggine ;)
Fatti non foste a viver come bruti ...
Lucio C
Scoppiettante Seguace
Scoppiettante Seguace
Messaggi: 363
Iscrizione: venerdì 10 dicembre 2021, 18:33
Desktop: fvwm
Distribuzione: (X)Ubuntu20@home; openSUSE42.3@work
Sesso: Maschile
Località: Paneropoli

Re: Spostare stringhe e fare conteggio

Messaggio da Lucio C »

Non credo che uno shell sia l'ambiente migliore per fare cio' ... meglio usae awk (che conosco) o perl (che non conosco) o una combinazione di utilities di sistema. P.es. se creo un file con il numero di righe ripetute chiesto nel primo post. uniq -c conta le righe col suo contenuto completo, il secondo awk pipato in uniq conta solo la prima parola

Codice: Seleziona tutto

 temp 10 > /usr/bin/uniq -c prova
      2 Pippo
      3 Pippo pluto
      1 Paperino
      4 Topolino Pippo
temp 12 > awk '{print $1}' prova | /usr/bin/uniq -c 
      5 Pippo
      1 Paperino
      4 Topolino
The reasonable man adapts himself to the world: the unreasonable one persists in trying to adapt the world to himself. Therefore all progress depends on the unreasonable man. (G.B. Shaw)
rai
Imperturbabile Insigne
Imperturbabile Insigne
Messaggi: 2842
Iscrizione: domenica 11 maggio 2008, 18:03
Desktop: plasma
Distribuzione: 22.04
Località: Palermo

Re: Spostare stringhe e fare conteggio

Messaggio da rai »

Lucio C ha scritto:
domenica 12 febbraio 2023, 21:31
Non credo che uno shell sia l'ambiente migliore per fare cio' ... meglio usae awk
questo è sicuramente vero ma bisogna sapere come fare per ottenere il risultato precisamente richiesto dall'OP (che è ciò che ha fatto @nuzzopippo). Se non si posta un codice in tal senso, tutto il resto sa un po' di fuffa, senza offesa per nessuno
Lucio C
Scoppiettante Seguace
Scoppiettante Seguace
Messaggi: 363
Iscrizione: venerdì 10 dicembre 2021, 18:33
Desktop: fvwm
Distribuzione: (X)Ubuntu20@home; openSUSE42.3@work
Sesso: Maschile
Località: Paneropoli

Re: Spostare stringhe e fare conteggio

Messaggio da Lucio C »

La soluzione con awk pipato in uniq conta le righe in cui la prima parola e' una data. Se si vuole vedere il conteggio delle righe in cui la prima parola e' una e anche gli eventuali altri vaori con altre seconde parole (come nell'esempio "Pippo (Pippo pluto): 5") non ha molto senso che uno di noi (che non sa di preciso come possono essere fatti i file, quante parole ci possono essere dopo la prima, ecc. ecc.) faccia il compito dell'OP senza sapere di preciso cosa si vuole
The reasonable man adapts himself to the world: the unreasonable one persists in trying to adapt the world to himself. Therefore all progress depends on the unreasonable man. (G.B. Shaw)
Avatar utente
UbuNuovo
Imperturbabile Insigne
Imperturbabile Insigne
Messaggi: 4433
Iscrizione: sabato 12 dicembre 2009, 20:58
Desktop: Mate
Distribuzione: Ubuntu Mate 22.04.1 LTS
Sesso: Maschile
Contatti:

Re: Spostare stringhe e fare conteggio

Messaggio da UbuNuovo »

Lucio C ha scritto:
lunedì 13 febbraio 2023, 15:26
... non ha molto senso che uno di noi (che non sa di preciso come possono essere fatti i file, quante parole ci possono essere dopo la prima, ecc. ecc.) faccia il compito dell'OP senza sapere di preciso cosa si vuole
Questo è poco ma sicuro!
Comunque dieci minuti glieli ho dedicati.
Un punto di partenza, con AWK, potrebbe essere:

Codice: Seleziona tutto

8-) cat file.txt 
Pippo: 2
Pippo pluto: 3
Paperino: 1
Topolino Pippo: 4
8-) awk -F"[: ]" '{n_nomi[$1]+=$NF;if(NF > 2){cont[$1]=cont[$1]" ("$1" "$2")"}} END { for (key in n_nomi) { print key, cont[key] ": " n_nomi[key]}}' file.txt
Topolino  (Topolino Pippo): 4
Pippo  (Pippo ) (Pippo pluto): 5
Paperino  (Paperino ): 1
8-) 
ma sapendo che si tratta di un "catalogo" fatto in modo sbagliato e complicatissimo, (come avevo già detto in passato,) termino qua.
@eb-ash devi raccogliere i dati dai nomi dei file e creare un vero database, anche come semplice file di testo ma che rispetti le regole di un vero database.
Ciaux
Salva l'Ucraina! 🇺🇦
Avatar utente
nuzzopippo
Entusiasta Emergente
Entusiasta Emergente
Messaggi: 1624
Iscrizione: giovedì 12 ottobre 2006, 11:34

Re: Spostare stringhe e fare conteggio

Messaggio da nuzzopippo »

UbuNuovo ha scritto:
lunedì 13 febbraio 2023, 17:03
Lucio C ha scritto:
lunedì 13 febbraio 2023, 15:26
... non ha molto senso che uno di noi (che non sa di preciso come possono essere fatti i file, quante parole ci possono essere dopo la prima, ecc. ecc.) faccia il compito dell'OP senza sapere di preciso cosa si vuole
Questo è poco ma sicuro!
...
Signori, non concordo con Voi, la domanda dello OP era chiara : si tratta di una manipolazione di stringa con somma di valori e nuova produzione di stringa con indicate le modalità, l'input/output sono fattori secondari, le motivazioni Sue.

Che la stringa sia un attimino "poco amichevole" sarà anche vero, così come è verissimo che può esser fatta meglio con altri mezzi ma "script bash" è stata Sua indicazione ... non ci si può certo aspettare la conoscenza di database relazionali ed SQL per saltuarie manipolazioni di stringa e, poi, tutto sommato, è anche divertente dare risposte a quesiti del genere, non scriveremmo qui, altrimenti.

Certo, come avete detto, esistono approcci migliori, ho sempre ammirato le magie di @UbuNuovo con awk e perl (a me sconosciuti) e persino io credo di poter combinare qualcosina di meglio con python ma se tali discorsi non ricadono negli interessi dello OP ...

:ciao:
Fatti non foste a viver come bruti ...
Lucio C
Scoppiettante Seguace
Scoppiettante Seguace
Messaggi: 363
Iscrizione: venerdì 10 dicembre 2021, 18:33
Desktop: fvwm
Distribuzione: (X)Ubuntu20@home; openSUSE42.3@work
Sesso: Maschile
Località: Paneropoli

Re: Spostare stringhe e fare conteggio

Messaggio da Lucio C »

Beh sulla chiarezza p.es. a me non era e non resta chiaro se "Pippo:2" e'il contenuto verbatim del file, o se il file contiene due righe con "Pippo" (io hgo assunto la seconda).
Un database e' indubbiamente un overshoot (anche se avendo un mysql/MariaDB che gira potrei essere tentato di usarlo). Uno script awk pero' potrebbe servire (anche didatticamente per l'OP) ... a me dai tempi dei tempi (Unix non ancora Linux ! non a caso io ho imparato csh e non sh o bash che allora non era ancora ri-nato ... sapete ovviamente che vuole dire Bourne again :D ) era stato insegnato di non usare gli shell per certe cose, ma o pipe di comandi esistenti (per cose brevi e volanti) oppure awk per del text o pattern processing (non necessariamente e non solo in forma di "one-liner", tutte le istruzioni sulla riga di comando .... si posspno fare dei veri script in awk, anche che invocano altri comandi e ne processano l'output.
The reasonable man adapts himself to the world: the unreasonable one persists in trying to adapt the world to himself. Therefore all progress depends on the unreasonable man. (G.B. Shaw)
Avatar utente
UbuNuovo
Imperturbabile Insigne
Imperturbabile Insigne
Messaggi: 4433
Iscrizione: sabato 12 dicembre 2009, 20:58
Desktop: Mate
Distribuzione: Ubuntu Mate 22.04.1 LTS
Sesso: Maschile
Contatti:

Re: Spostare stringhe e fare conteggio

Messaggio da UbuNuovo »

@Nuzzopippo: te hai fatto un ottimo lavoro e se l'esempio postato fosse realmente indicativo di cosa gli serve, avresti ragione al 100%.
Conosco il lavoro che sta facendo, ormai da parecchio tempo; deve catalogare file musicali e, sicuramente, i nomi non saranno topolino e pippo ma, molto probabilmente, saranno composti e probabilmente potrebbero avere separatori diversi o altre diversificazioni.
Il lavoro che deve fare non è facile, proprio per tutte le variabili che si presentano nei nomi dei file, per questo motivo si deve prima progettare un modo sicuro per individuare i vari campi.
Lui estrae i dati in modo quasi casuale e, a cascata, modifica il suo "scriptone" per risolvere i problemi che si verificano a causa della mancata progettazione, di questo passo non finirà mai.
Salva l'Ucraina! 🇺🇦
Avatar utente
nuzzopippo
Entusiasta Emergente
Entusiasta Emergente
Messaggi: 1624
Iscrizione: giovedì 12 ottobre 2006, 11:34

Re: Spostare stringhe e fare conteggio

Messaggio da nuzzopippo »

UbuNuovo ha scritto:
lunedì 13 febbraio 2023, 18:43
...Conosco il lavoro che sta facendo, ormai da parecchio tempo; deve catalogare file musicali e, sicuramente, i nomi non saranno topolino e pippo ma, molto probabilmente, saranno composti e probabilmente potrebbero avere separatori diversi o altre diversificazioni...
Ok, in tal caso hai ragione, lo script non potrebbe funzionare il caso di spazi nei nomi ed, inoltre, sarebbe poco pratico per i potenziali "cumuli" di stringhe che possono verificarsi.

@eb-ash vorresti specificare un dettagliato "cosa Ti serve"?
... Potrebbe essere un buon terreno per giocare, inoltre, tempo fa, ho esteso un giochetto iniziato qui, dandogli capacità di riorganizzazione di archivi multimediali (spostamento files e ristrutturazione directory), magari si potrebbe recuperarne il codice ed aggiungergli qualcosina per adattarlo alle Tue necessità e farne una piccola applicazione.
Fatti non foste a viver come bruti ...
Avatar utente
Rafbor
Prode Principiante
Messaggi: 142
Iscrizione: domenica 13 febbraio 2022, 18:22
Desktop: Xubuntu
Distribuzione: 22.04.3 LTS
Località: Francia

Re: Spostare stringhe e fare conteggio

Messaggio da Rafbor »

nuzzopippo ha scritto:
lunedì 13 febbraio 2023, 18:22
tutto sommato, è anche divertente dare risposte a quesiti del genere, non scriveremmo qui, altrimenti.
Ho fatto anche il mio script per divertimento, ma è in Programmazione/CSharp/Script, niente a che fare con la richiesta iniziale :p

Codice: Seleziona tutto

#!/usr/bin/env dotnet-script

using System;
using System.Data;

DataTable dtTableInput = new DataTable();
dtTableInput.Columns.Add("PrimaParole", typeof(string));
dtTableInput.Columns.Add("Riga", typeof(string));
dtTableInput.Columns.Add("Count", typeof(Int16));

DataTable dtableOutput = new DataTable();
dtableOutput.Columns.Add("PrimaParole", typeof(string));
dtableOutput.Columns.Add("Riga", typeof(string));
dtableOutput.Columns.Add("Count", typeof(Int16));

void Input()
{
    FileStream fs;
    StreamReader strmReader = null;
    string strLigne;
    string[] strSplit, strSplit2;
    DataRow dtRow;

    try
    {
        // Leggere e memorizzare in array le righe nomi
        fs = new FileStream("input.txt", FileMode.Open, FileAccess.Read);
        strmReader = new StreamReader(fs, Encoding.UTF8);

        while ((strLigne = strmReader.ReadLine()) != null)
        {
            // dividere in corrispondenza del carattere ':'
            dtRow = dtTableInput.NewRow();
            strSplit = strLigne.Split(new Char [] {':'});
            dtRow["Count"] = Convert.ToInt16(strSplit[1]);
            // dividere in corrispondenza del carattere ' '
            strSplit2 = strSplit[0].Split(new Char [] {' '});
            dtRow["PrimaParole"] = strSplit2[0];
            dtRow["Riga"] = strSplit[0];
            //
            dtTableInput.Rows.Add(dtRow);
        }
    }
    catch (Exception e)
    {
        Console.WriteLine(e.Message);
    }
    finally
    {
        strmReader.Close();
    }
}
void Output()
{
    string sPrimaParole = string.Empty;
    DataRow[] dtFilter = dtTableInput.Select("1=1", "PrimaParole ASC");
    DataRow rowI;

    // 1° ordinamento in base alla prima parola
    for (Int16 n = 0; n < dtFilter.Length; n++)
    {
        rowI = dtFilter[n];
        if (!sPrimaParole.Equals(rowI["PrimaParole"].ToString()))
        {
            sPrimaParole = rowI["PrimaParole"].ToString();
            //
            DataRow rowO = dtableOutput.NewRow();
            rowO["PrimaParole"] = rowI["PrimaParole"].ToString();
            rowO["Riga"] = rowI["Riga"].ToString();
            rowO["Count"] = Convert.ToInt16(rowI["Count"]);
            dtableOutput.Rows.Add(rowO);
        }
    }
    // costituzione delle nuove righe
    for (Int16 n = 0; n < dtFilter.Length; n++)
    {
        rowI = dtFilter[n];
        foreach (DataRow rowO in dtableOutput.Rows)
        {
            if (!rowO["Riga"].ToString().Equals(rowI["Riga"].ToString()) && rowO["PrimaParole"].ToString().Equals(rowI["PrimaParole"].ToString()))
            {
                rowO["Riga"] = rowO["Riga"].ToString() + " (" + rowI["Riga"].ToString() + ")";
                rowO["Count"] = Convert.ToInt16(rowO["Count"]) + Convert.ToInt16(rowI["Count"]);
            }
        }
    }
    // scrittura sul file
    FileStream fs = new FileStream("output.txt", FileMode.Create, FileAccess.Write);
    StreamWriter strmWriter = new StreamWriter(fs, Encoding.UTF8);
    try
    {
        foreach (DataRow row in dtableOutput.Rows)
            strmWriter.WriteLine(row["Riga"].ToString() + ": " + row["Count"].ToString());
    }
    catch (Exception e)
    {
        Console.WriteLine(e.Message);
    }
    finally
    {
        strmWriter.Close();
    }
}

Input();
Output();

Codice: Seleziona tutto

$ cat input.txt
Pippo: 2
Pippo Pluto: 3
Paperino: 1
Topolino Pippo: 4
Pippo Minnie: 1

$ cat output.txt
Paperino: 1
Pippo (Pippo Pluto) (Pippo Minnie): 6
Topolino Pippo: 4
Avatar utente
eb-ash
Prode Principiante
Messaggi: 204
Iscrizione: lunedì 18 febbraio 2019, 18:02
Sesso: Maschile

Re: Spostare stringhe e fare conteggio

Messaggio da eb-ash »

Innanzitutto vorrei ringraziarvi tutti per i contributi. Quello che mi funziona perfettamente per l'esempio dato è il lavoro di @nuzzopippo.

:popopo: :sarcasticclap:


Quello di @UbuNuovo invece opera anche sulle stringhe che non sono state sommate e da un risultato anomalo.
Ti ringrazio per la pazienza e i consigli... dopo una pandemia, una guerra e non so cosa deve ancora capitare ho trovato la tranquillità di rimettermi su questo hobby, sostanzialmente credo di essere riuscito a capire cosa mi serviva... mi sono accorto che bastava pensare all'insieme dei titoli in cui ricorre un nome all'inizio... potevo accorgermene prima... :muro: :muro: :muro:




nuzzopippo, adesso sto testando i titoli reali, avendo un sacco di caratteri speciali a cui non voglio rinunciare spero di non avere problemi e cmq di riuscire a cavarmela da solo.
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 14 ospiti