[RISOLTO] Cat stampa stringhe?

Problemi di programmazione riguardante il linguaggio script Bash
Rispondi
Avatar utente
Nabla
Messaggi: 209
Iscritto il: 19/04/2012, 21:21
Distribuzione: Debian7
Kernel: 3.11
Architettura: x86_64

[RISOLTO] Cat stampa stringhe?

Messaggio da Nabla » 27/11/2012, 21:51

Ciao a tutti, ho un dubbio. Quando io eseguo cat su un file e faccio un grep di una riga di quello stesso file, l'output è una stringa? Io pensavo di sì, ma poi volevo stampare la lunghezza di quella stringa ma non la stampa. Quindi forse non è una stringa, o forse c'è qualche opzione da dare a grep (-F fixa a stringhe ?¿).

Per la lunghezza ho dato:

Codice: Seleziona tutto

${#nome_stringa}
Grazie delle risposte !



Avatar utente
mae89
Messaggi: 1333
Iscritto il: 22/12/2010, 10:25
Distribuzione: Fedora
Kernel: 3.16.9
Architettura: x86_64
Contatta:

Re: Cat stampa stringhe?

Messaggio da mae89 » 28/11/2012, 9:44

Ciao...

spero di aver capito la tua domanda...
allora te per estrapolare qualcosa con cat un testo usi il comando

Codice: Seleziona tutto

cat nome_file
poi per estrapolare la riga con una parola chiave usi

Codice: Seleziona tutto

cat nome_file | grep parola_chiave
per inserire il risultato in una variabile da usare come meglio credi:

Codice: Seleziona tutto

nome_variabile = $(cat nome_variabile | grep parola_chiave)
ora, ad esempio, puoi stampare tranqullamente la variabile con

Codice: Seleziona tutto

echo $nome_variabile
spero di aver fatto centro soddisfando la tua domanda..
Chi dice di non essere capace è perché probabilmente non ha mai provato.

Avatar utente
sabayonino
Messaggi: 1482
Iscritto il: 16/01/2012, 20:47
Distribuzione: GentooKDE
Kernel: 4.4.6-gentoo-BFQ
Architettura: x86_64
Contatta:

Re: Cat stampa stringhe?

Messaggio da sabayonino » 28/11/2012, 13:51

supponiamo ch all'interno del file dal nome "test" ci siano le righe :

ABCDEFGH
123456
78910


e tu debba estrapolare il contenuto di "1234" e calcolarne la lunghezza (della stringa)

Codice: Seleziona tutto

$ str=`cat test | grep "1234"`
$ echo ${#str}
Risultato

Codice: Seleziona tutto

$ 6
ossia 123456

parte estrapolata 1234 su una lunghezza della stringa di 6 caratteri ossia 123456

[edit]NOTA : notare l'utilizzo degli apici singoli inversi per eseguire il comando cat test | grep "1234" il quale output è rimandato alla variabile str

[edit 2 ]

Nel caso ci siano più righe contenenti "1234" (esempio 123456 12345 etc

verrà calcolata la somma delle intere stringhe +1 per ogni riga trovata

Esemnpio : se "1234" è contenuto in 4 righe e il contenuto è
12345
123456
1234567

il risultato sarà
1234 = 4
+1 per una riga ( 4+1=5)
123456[/b] = 6 (5+6=11)
+1 per la riga successiva
1234567 = 7 (7+1+11=19)

1234+1+123456+1+1234567 = 19

Avatar utente
Nabla
Messaggi: 209
Iscritto il: 19/04/2012, 21:21
Distribuzione: Debian7
Kernel: 3.11
Architettura: x86_64

Re: [RISOLTO] Cat stampa stringhe?

Messaggio da Nabla » 28/11/2012, 19:08

Grazie a tutti e due ho risolto ! :)

Avatar utente
mae89
Messaggi: 1333
Iscritto il: 22/12/2010, 10:25
Distribuzione: Fedora
Kernel: 3.16.9
Architettura: x86_64
Contatta:

Re: [RISOLTO] Cat stampa stringhe?

Messaggio da mae89 » 28/11/2012, 19:33

Perfetto, ho messo risolto allora yeah
Chi dice di non essere capace è perché probabilmente non ha mai provato.

Rispondi

Chi c’è in linea

Visitano il forum: Nessuno e 1 ospite