Pages: [1]   Go Down
Print
Author Topic: problema comando shell  (Read 2523 times)
0 Members e 1 Utente non registrato stanno visualizzando questa discussione.
Chuck_son
Forumista Eroico
*****
Offline Offline

Gender: Male
Posts: 1.583



WWW
« on: 27-05-2012, 15:12:52 »

il comando "wc -c testo.txt"  dove testo.txt è composto da : "1 e 2 sono 13"(escluse virgolette), dovrebbe dare 13, ma mi da 14, mi sfugge qualcosa?


per quanto riguarda il sort, è impossibile ordinare nella riga stessa?

non c'è un modo per "moltiplicare" l'esecuzione di un comando?
« Last Edit: 27-05-2012, 15:20:59 by Chuck_son » Logged

Aliens Exist
turiddu91
Matricola
*
Offline Offline

Gender: Male
Posts: 27


Tutto ciò che tu vorresti è un'utopia..


WWW
« Reply #1 on: 27-05-2012, 15:31:21 »

il comando sort, come dice anche lo stesso manuale, ordina le righe (sort lines of text files). Forse esiste un qualche altro comando che ordina i caratteri.. ma non lo so XD cmq, il fatto di wc, penso sia 14 perchè conta anche il carattere finale EOF.. inoltre, moltiplicare in che senso? se vuoi, si può concatenare o fare il comando del comando!
Logged
Chuck_son
Forumista Eroico
*****
Offline Offline

Gender: Male
Posts: 1.583



WWW
« Reply #2 on: 27-05-2012, 15:42:49 »

il comando sort, come dice anche lo stesso manuale, ordina le righe (sort lines of text files). Forse esiste un qualche altro comando che ordina i caratteri.. ma non lo so XD cmq, il fatto di wc, penso sia 14 perchè conta anche il carattere finale EOF.. inoltre, moltiplicare in che senso? se vuoi, si può concatenare o fare il comando del comando!

perfetto, allora per moltiplicare intendo: esegui "echo ciao" 100 volte
Logged

Aliens Exist
turiddu91
Matricola
*
Offline Offline

Gender: Male
Posts: 27


Tutto ciò che tu vorresti è un'utopia..


WWW
« Reply #3 on: 27-05-2012, 16:14:03 »

puoi usare il comando for! XD o altri costrutti come l'if o il while! oppure fai un programmino in c e lo esegui da shell XD

qui -> http://www.freeos.com/guides/lsst/ch03sec06.html <- ci sono le spiegazioni ! puoi fare:
for ((i=0;i<100;i++))
 do
 echo ciao
 done

e poi ti scrive 100 volte ciao XD
Logged
ɹǝǝuıƃuǝsɹǝʌǝɹ
Administrator
God of the Forum
*****
Offline Offline

Gender: Male
Posts: 4.475


Più grande è la lotta, e più è glorioso il trionfo


WWW
« Reply #4 on: 27-05-2012, 16:23:23 »

il comando "wc -c testo.txt"  dove testo.txt è composto da : "1 e 2 sono 13"(escluse virgolette), dovrebbe dare 13, ma mi da 14, mi sfugge qualcosa?
Sì, e non è il carattere EOF (che non è un carattere presente realmente nel file). Si tratta del carattere di "a capo" (codice ASCII 13 decimale), che è finito nel tuo file perché prima di salvare è rimasto scritto nell'editor.

Per sincerartene, usa il comando stat con la sintassi:
Code:
stat -c %s testo.txt

non c'è un modo per "moltiplicare" l'esecuzione di un comando?
"moltiplicare" l'esecuzione di un comando è proprio un verbo infelice per indicare la ripetizione, di un comando.

Come suggeriva turiddu91, si deve ricorrere a costrutti iterativi della shell, come appunto faceva notare, il ciclo for (ed eventualmente altri comandi), come in:
Code:
for i in $(seq 1 100); do echo ciao; done
Logged

La grande marcia della distruzione mentale proseguirà. Tutto verrà negato. Tutto diventerà un credo. È un atteggiamento ragionevole negare l'esistenza delle pietre sulla strada; sarà un dogma religioso affermarla. È una tesi razionale pensare di vivere tutti in un sogno; sarà un esempio di saggezza mistica affermare che siamo tutti svegli. Accenderemo fuochi per testimoniare che due più due fa quattro. Sguaineremo spade per dimostrare che le foglie sono verdi in estate. Non ci resterà quindi che difendere non solo le incredibili virtù e saggezze della vita umana, ma qualcosa di ancora più incredibile: questo immenso, impossibile universo che ci guarda dritto negli occhi. Combatteremo per i prodigi visibili come se fossero invisibili. Guarderemo l'erba e i cieli impossibili con uno strano coraggio. Saremo tra coloro che hanno visto eppure hanno creduto.

In tutto, amare e servire.

  
                            ن                           
I can deal with ads,
I can deal with buffer,
but when ads buffer
I suffer...

...nutrimi, o Signore, "con il pane delle lacrime; dammi, nelle lacrime, copiosa bevanda...

   YouTube 9GAG    anobii  S  Steam T.B.o.I. Wiki [univ] Lezioni private  ʼ  Albo d'Ateneo Unicode 3.0.1
Usa "Search" prima di aprire un post - Scrivi sempre nella sezione giusta - Non spammare - Rispetta gli altri utenti - E ricorda di seguire il Regolamento
Chuck_son
Forumista Eroico
*****
Offline Offline

Gender: Male
Posts: 1.583



WWW
« Reply #5 on: 27-05-2012, 16:26:56 »

il comando "wc -c testo.txt"  dove testo.txt è composto da : "1 e 2 sono 13"(escluse virgolette), dovrebbe dare 13, ma mi da 14, mi sfugge qualcosa?
Sì, e non è il carattere EOF (che non è un carattere presente realmente nel file). Si tratta del carattere di "a capo" (codice ASCII 13 decimale), che è finito nel tuo file perché prima di salvare è rimasto scritto nell'editor.

Per sincerartene, usa il comando stat con la sintassi:
Code:
stat -c %s testo.txt

non c'è un modo per "moltiplicare" l'esecuzione di un comando?
"moltiplicare" l'esecuzione di un comando è proprio un verbo infelice per indicare la ripetizione, di un comando.

Come suggeriva turiddu91, si deve ricorrere a costrutti iterativi della shell, come appunto faceva notare, il ciclo for (ed eventualmente altri comandi), come in:
Code:
for i in $(seq 1 100); do echo ciao; done

il mio modo di parlare a volte sfasa haha  yoh
allora il comando stats mi da:1515
Logged

Aliens Exist
turiddu91
Matricola
*
Offline Offline

Gender: Male
Posts: 27


Tutto ciò che tu vorresti è un'utopia..


WWW
« Reply #6 on: 27-05-2012, 16:28:53 »

vero, ora che penso, il comando echo alla fine mette sempre "l'accapo". Per ovviare devi mettere l'attribbuto -n ad echo!
Logged
ɹǝǝuıƃuǝsɹǝʌǝɹ
Administrator
God of the Forum
*****
Offline Offline

Gender: Male
Posts: 4.475


Più grande è la lotta, e più è glorioso il trionfo


WWW
« Reply #7 on: 27-05-2012, 16:30:24 »

allora il comando stats mi da:1515
Esegui questo comando:
Code:
echo -n "1 e 2 sono 13" > testo.txt; stat -c %s testo.txt
Cosa ti spunta in output?
Logged

La grande marcia della distruzione mentale proseguirà. Tutto verrà negato. Tutto diventerà un credo. È un atteggiamento ragionevole negare l'esistenza delle pietre sulla strada; sarà un dogma religioso affermarla. È una tesi razionale pensare di vivere tutti in un sogno; sarà un esempio di saggezza mistica affermare che siamo tutti svegli. Accenderemo fuochi per testimoniare che due più due fa quattro. Sguaineremo spade per dimostrare che le foglie sono verdi in estate. Non ci resterà quindi che difendere non solo le incredibili virtù e saggezze della vita umana, ma qualcosa di ancora più incredibile: questo immenso, impossibile universo che ci guarda dritto negli occhi. Combatteremo per i prodigi visibili come se fossero invisibili. Guarderemo l'erba e i cieli impossibili con uno strano coraggio. Saremo tra coloro che hanno visto eppure hanno creduto.

In tutto, amare e servire.

  
                            ن                           
I can deal with ads,
I can deal with buffer,
but when ads buffer
I suffer...

...nutrimi, o Signore, "con il pane delle lacrime; dammi, nelle lacrime, copiosa bevanda...

   YouTube 9GAG    anobii  S  Steam T.B.o.I. Wiki [univ] Lezioni private  ʼ  Albo d'Ateneo Unicode 3.0.1
Usa "Search" prima di aprire un post - Scrivi sempre nella sezione giusta - Non spammare - Rispetta gli altri utenti - E ricorda di seguire il Regolamento
Chuck_son
Forumista Eroico
*****
Offline Offline

Gender: Male
Posts: 1.583



WWW
« Reply #8 on: 27-05-2012, 16:36:44 »

allora il comando stats mi da:1515
Esegui questo comando:
Code:
echo -n "1 e 2 sono 13" > testo.txt; stat -c %s testo.txt
Cosa ti spunta in output?

ah si scusa, ahhahah avevo dimenticato di aver messo troppe cose in quel file, cmq adesso mi da 13, che dovrebbe essere esatto no?
Logged

Aliens Exist
Pages: [1]   Go Up
Print
Jump to: