[bash] problema stringhe di testo [risolto]
Moderatore: Staff
Regole del forum
1) Citare sempre la versione di Slackware usata, la versione del Kernel e magari anche la versione della libreria coinvolta. Questi dati aiutano le persone che possono rispondere.
2) Per evitare confusione prego inserire in questo forum solo topic che riguardano appunto Gnu/Linux in genere, se l'argomento è specifico alla Slackware usate uno dei forum Slackware o Slackware64.
3) Leggere attentamente le risposte ricevute
4) Scrivere i messaggi con il colore di default, evitare altri colori.
5) Scrivere in Italiano o in Inglese, se possibile grammaticalmente corretto, evitate stili di scrittura poco chiari, quindi nessuna abbreviazione tipo telegramma o scrittura stile SMS o CHAT.
6) Appena registrati è consigliato presentarsi nel forum dedicato.
La non osservanza delle regole porta a provvedimenti di vari tipo da parte dello staff, in particolare la non osservanza della regola 5 porta alla cancellazione del post e alla segnalazione dell'utente. In caso di recidività l'utente rischia il ban temporaneo.
1) Citare sempre la versione di Slackware usata, la versione del Kernel e magari anche la versione della libreria coinvolta. Questi dati aiutano le persone che possono rispondere.
2) Per evitare confusione prego inserire in questo forum solo topic che riguardano appunto Gnu/Linux in genere, se l'argomento è specifico alla Slackware usate uno dei forum Slackware o Slackware64.
3) Leggere attentamente le risposte ricevute
4) Scrivere i messaggi con il colore di default, evitare altri colori.
5) Scrivere in Italiano o in Inglese, se possibile grammaticalmente corretto, evitate stili di scrittura poco chiari, quindi nessuna abbreviazione tipo telegramma o scrittura stile SMS o CHAT.
6) Appena registrati è consigliato presentarsi nel forum dedicato.
La non osservanza delle regole porta a provvedimenti di vari tipo da parte dello staff, in particolare la non osservanza della regola 5 porta alla cancellazione del post e alla segnalazione dell'utente. In caso di recidività l'utente rischia il ban temporaneo.
- sya54M
- Master

- Messaggi: 1665
- Iscritto il: mer 6 giu 2007, 14:44
- Nome Cognome: Andrea Peluso
- Slackware: 64-current
- Kernel: ultimo
- Desktop: KDE
- Località: (Salerno)
- Contatta:
[bash] problema stringhe di testo [risolto]
salve, ho bisogno di escludere l'ultimo carattere (o byte) da una stringa di variabile lunghezza, per esempio "ciao" diventerebbe "cia" oppure "pippo" diventerebbe "pipp".
sono impazzito col comando cut ma mi sembra che possa solo selezionare e non escludere caratteri, soluzioni?
grazie e ciao!
sono impazzito col comando cut ma mi sembra che possa solo selezionare e non escludere caratteri, soluzioni?
grazie e ciao!
Ultima modifica di sya54M il sab 16 ago 2008, 14:17, modificato 2 volte in totale.
- cymon
- Linux 2.x

- Messaggi: 430
- Iscritto il: ven 5 gen 2007, 1:40
- Slackware: 13.1
- Kernel: 2.6.33.4-smp
- Desktop: Fluxbox
- Località: Milano
- Contatta:
Re: problema stringhe di testo
Mmmmmh, in che linguaggio?sya54M ha scritto:salve, ho bisogno di escludere l'ultimo carattere (o byte) da una stringa di variabile lunghezza, per esempio "ciao" diventerebbe "cia" oppure "pippo" diventerebbe "pipp".
sono impazzito col comando cut ma mi sembra che possa solo selezionare e non escludere caratteri, soluzioni?
grazie e ciao!
Con un colpettino di sed puoi fare:
Codice: Seleziona tutto
cymon@chrome:~$ echo ciao > prova
cymon@chrome:~$ sed s/.$// prova
cia
- FireEater
- Linux 3.x

- Messaggi: 508
- Iscritto il: sab 5 feb 2005, 0:00
- Nome Cognome: Giuseppe M.
- Slackware: Current
- Kernel: 2.6.32.7-smp
- Desktop: kde 4.3.4
- Località: Cagliari <---> Torino
Re: problema stringhe di testo
Già... in che linguaggio??
In c potresti mettere uno '\0' nell'ultimo carattere(strlen).
Ciao.
In c potresti mettere uno '\0' nell'ultimo carattere(strlen).
Ciao.
- sya54M
- Master

- Messaggi: 1665
- Iscritto il: mer 6 giu 2007, 14:44
- Nome Cognome: Andrea Peluso
- Slackware: 64-current
- Kernel: ultimo
- Desktop: KDE
- Località: (Salerno)
- Contatta:
Re: problema stringhe di testo
perdonatemi, mi era venuto in mente dopo che ho spento il pc che non ho scritto che sto parlando di bash
- sya54M
- Master

- Messaggi: 1665
- Iscritto il: mer 6 giu 2007, 14:44
- Nome Cognome: Andrea Peluso
- Slackware: 64-current
- Kernel: ultimo
- Desktop: KDE
- Località: (Salerno)
- Contatta:
Re: problema stringhe di testo
comunque, grazie mille cymon
con sed funziona, però non ho capito come
, cosa significa? è angosciate fare una cosa senza sapere come la si è fatta 
Codice: Seleziona tutto
s/.$//- conraid
- Staff

- Messaggi: 13631
- Iscritto il: gio 14 lug 2005, 0:00
- Nome Cognome: Corrado Franco
- Slackware: current64
- Desktop: kde
- Località: Livorno
- Contatta:
Re: problema stringhe di testo
in pratica dice a sed "sostituisci il carattere, qualunque sia, prima del fine riga con niente"sya54M ha scritto:comunque, grazie mille cymoncon sed funziona, però non ho capito come
,
cosa significa? è angosciate fare una cosa senza sapere come la si è fattaCodice: Seleziona tutto
s/.$//
. = qualsiasi carattere
$ = fine riga (se gli passi una stringa è la fine stringa, per esempio "echo pippo | sed s/.$//")
s/// = comando sed di sosituzione
- sya54M
- Master

- Messaggi: 1665
- Iscritto il: mer 6 giu 2007, 14:44
- Nome Cognome: Andrea Peluso
- Slackware: 64-current
- Kernel: ultimo
- Desktop: KDE
- Località: (Salerno)
- Contatta:
Re: [bash] problema stringhe di testo
e se volessi aggiungere una lettera prestabilita a una stringa come posso fare?
per esempio voglio aggiungere la lettera M a qualunque stringa e "ciao" diventerebba "ciaoM"
scusate se pongo un altra domanda ma tanto il topic è abbastanza generico...
per esempio voglio aggiungere la lettera M a qualunque stringa e "ciao" diventerebba "ciaoM"
scusate se pongo un altra domanda ma tanto il topic è abbastanza generico...
- sya54M
- Master

- Messaggi: 1665
- Iscritto il: mer 6 giu 2007, 14:44
- Nome Cognome: Andrea Peluso
- Slackware: 64-current
- Kernel: ultimo
- Desktop: KDE
- Località: (Salerno)
- Contatta:
Re: [bash] problema stringhe di testo
grazie conraid, ora è tutto chiaro, avevo letto ciò che restituisce "sed --help" ma l'utilissima opzione s/// non è riportata nell'help, avrei dovuto guardare nel man.
- conraid
- Staff

- Messaggi: 13631
- Iscritto il: gio 14 lug 2005, 0:00
- Nome Cognome: Corrado Franco
- Slackware: current64
- Desktop: kde
- Località: Livorno
- Contatta:
Re: [bash] problema stringhe di testo
s/$/M/sya54M ha scritto:e se volessi aggiungere una lettera prestabilita a una stringa come posso fare?
per esempio voglio aggiungere la lettera M a qualunque stringa e "ciao" diventerebba "ciaoM"
Ma in questo caso se ti serve dentro uno script non so quanto convenga usare sed
a=pippo
b=${a}M
echo b # produce pippoM
tanto per fare un esempio
- sya54M
- Master

- Messaggi: 1665
- Iscritto il: mer 6 giu 2007, 14:44
- Nome Cognome: Andrea Peluso
- Slackware: 64-current
- Kernel: ultimo
- Desktop: KDE
- Località: (Salerno)
- Contatta:
Re: [bash] problema stringhe di testo
perfetto! grazie infiniteconraid ha scritto:s/$/M/
no, non è uno script, sed è perfetto per quello che devo fare, lo concateno ad altri comandi con |, non lavora su file.conraid ha scritto:Ma in questo caso se ti serve dentro uno script non so quanto convenga usare seda=pippob=${a}Mecho b # produce pippoMtanto per fare un esempio
- cymon
- Linux 2.x

- Messaggi: 430
- Iscritto il: ven 5 gen 2007, 1:40
- Slackware: 13.1
- Kernel: 2.6.33.4-smp
- Desktop: Fluxbox
- Località: Milano
- Contatta:
Re: [bash] problema stringhe di testo
In verità sed è un programma a sé, più che il man, se ti interesa l'argomento, è proprio meglio recuperare una guida. Come è sempre bene recuperarne una di awk.sya54M ha scritto:grazie conraid, ora è tutto chiaro, avevo letto ciò che restituisce "sed --help" ma l'utilissima opzione s/// non è riportata nell'help, avrei dovuto guardare nel man.