Anda dapat menggunakan -o
, --output=FILE
opsi semacam untuk menunjukkan file masukan dan keluaran yang sama:
sort -o file file
Tanpa mengulang nama file (dengan ekspansi bash brace)
sort -o file{,}
⚠️ Catatan penting: kesalahan umum adalah mencoba mengalihkan output ke file input yang sama (mis. sort file > file
). Ini tidak berfungsi karena shell membuat pengalihan (bukan sort(1) program) dan file input (sebagai output juga) akan dihapus tepat sebelum memberikan sort(1) memprogram kesempatan untuk membacanya.
sort
perintah mencetak hasil operasi penyortiran ke output standar secara default. Untuk mencapai pengurutan "di tempat", Anda dapat melakukan ini:
sort -o file file
Ini menimpa input file
dengan output yang diurutkan. -o
switch, digunakan untuk menentukan keluaran, ditentukan oleh POSIX, jadi harus tersedia di semua versi sort
:
-o Tentukan nama file keluaran yang akan digunakan sebagai pengganti keluaran standar. File ini bisa sama dengan salah satu file masukan.
Jika Anda kurang beruntung memiliki versi sort
tanpa -o
switch (Luis meyakinkan saya bahwa mereka ada), Anda dapat melakukan pengeditan "di tempat" dengan cara standar:
sort file > tmp && mv tmp file