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