sort
tem a opção -o, --output
que usa um nome de arquivo como argumento. Se for o mesmo que o arquivo de entrada, ele grava o resultado em um arquivo temporário e sobrescreve o arquivo de entrada original (exatamente a mesma coisa que sed -i
faz).
Da página de informações de GNU sort
:
'-o OUTPUT-FILE'
'--output=OUTPUT-FILE'
Write output to OUTPUT-FILE instead of standard output. Normally,
'sort' reads all input before opening OUTPUT-FILE, so you can
safely sort a file in place by using commands like 'sort -o F F'
and 'cat F | sort -o F'. However, 'sort' with '--merge' ('-m')
can open the output file before reading all input, so a command
like 'cat F | sort -m -o F - G' is not safe as 'sort' might start
writing 'F' before 'cat' is done reading it.
On newer systems, '-o' cannot appear after an input file if
'POSIXLY_CORRECT' is set, e.g., 'sort F -o F'. Portable scripts
should specify '-o OUTPUT-FILE' before any input files.
e de Especificações do Grupo Open de Base Edição 7 :
-o output
Specify the name of an output file to be used instead of the standard
output. This file can be the same as one of the input files.