-2

I am trying to sort a file with following command : sort ${filename} > ${filename} , and I get as result - an empty file.
Can someone explain why I get this result and how can I fix it?

Software_t
  • 576
  • 1
  • 4
  • 13

2 Answers2

1

What you are trying to do is a inplace sort so which may not be supported, try instead.

sort ${filename} > temp_file && mv temp_file ${filename}
RavinderSingh13
  • 130,504
  • 14
  • 57
  • 93
1

In short, because Bash truncates the file before sort can read from it. Apart from @RavinderSingh13’s answer, which is the standard way to fix it, you could also use sponge from the moreutils package:

sort ${filename} | sponge ${filename}
Boldewyn
  • 81,211
  • 44
  • 156
  • 212