Se avete dubbi o domande sulla programmazione in generale, fatele qui

Messaggio17 aprile 2012, 22:16 - [Risolto] Bash, awk e reindirizzamento input e output #120381

Ciao a tutti,

durante tutta la giornata non ho fatto altro che pensare che a questo:

Codice: Seleziona tutto
[user@host ~]$ echo "first word" > test
[user@host ~]$ cat test
first word
[user@host ~]$ { rm ./test && awk -F' ' '{ print $2,$1 }' > ./test; } < ./test
[user@host ~]$ cat test
word first
[user@host ~]$ { awk -F' ' '{ print $2,$1 }' > ./test; } < ./test
[user@host ~]$ cat test
[user@host ~]$ ls -l test
-rw-r--r-- 1 user user 0 17 apr 22.06 test


In pratica con la riga
Codice: Seleziona tutto
{ rm ./test && awk -F' ' '{ print $2,$1 }' > ./test; } < ./test

Il file "test" viene modificando invertendo l'ordine delle parole in esso, mentre la riga simile (ma senza il comando "rm" all'inizio) funziona diversamente:
Codice: Seleziona tutto
{ awk -F' ' '{ print $2,$1 }' > ./test; } < ./test

E in output ho un file "test" vuoto, di grandezza 0 byte.
Qualcuno sa spiegarmi il perchè?
Non capisco perchè se elimino il file con rm awk funziona, mentre se non lo cancello come mai awk non elo "sovrascrive"...

Grazie :)
Ultima modifica di veleno77 il 26 aprile 2012, 10:24, modificato 1 volta in totale.
Motivazione: Aggiungete il Tag [Risolto] seguito da uno spazio bianco, quando la discussione è terminata e avete risolto il vostro problema. Grazie.
Mine
I rigori li sbaglia solo chi ha il coraggio di tirarli. (R. Baggio)
Mine
Novello Arciere
 
Messaggi: 29
Iscritto il: 3 febbraio 2012, 0:07
Top

Re: Bash, awk e reindirizzamento input e output

Messaggio18 aprile 2012, 14:23 - [Risolto] Bash, awk e reindirizzamento input e output #120414

Qui puoi trovare un'esauriente spiegazione sull'editing in-place, che è quello che nel tuo caso non è possibile fare con awk:

http://backreference.org/2011/01/29/in- ... -of-files/

:-)
"It seems that perfection is reached not when there is nothing left to add, but when there is nothing left to take away".
Antoine de Saint Exupéry
http://www.keepsimple.it
Avatar utente
lgaggini
Arciere
 
Messaggi: 277
Iscritto il: 21 gennaio 2011, 0:46
Località: Pescia (PT)
Top

Re: Bash, awk e reindirizzamento input e output

Messaggio18 aprile 2012, 19:55 - [Risolto] Bash, awk e reindirizzamento input e output #120445

Bellissimo link, grazie mille!!! :)
Mine
I rigori li sbaglia solo chi ha il coraggio di tirarli. (R. Baggio)
Mine
Novello Arciere
 
Messaggi: 29
Iscritto il: 3 febbraio 2012, 0:07
Top


Torna a Programmazione

Chi c’è in linea

Visitano il forum: Nessuno e 1 ospite

Moderatori: 4javier, aleph, veleno77, adriano, Hilinus