Nếu tôi tạo ra một tập tin văn bản có chứa các dòng sau:bất ngờ bash hành vi loại
>TESTTEXT_10000000
>TESTTEXT_1000000
>TESTTEXT_10000002
>TESTTEXT_10000001
và thực hiện sort myfile
, đầu ra của tôi là
>TESTTEXT_1000000
>TESTTEXT_10000000
>TESTTEXT_10000001
>TESTTEXT_10000002
Tuy nhiên, nếu tôi thêm/1 và/2 đến dòng của tôi đầu ra sắp xếp thay đổi mạnh mẽ, và tôi không biết tại sao.
Input:
>TESTTEXT_10000000/1
>TESTTEXT_1000000/1
>TESTTEXT_10000002/1
>TESTTEXT_10000001/1
Output:
>TESTTEXT_10000000/1
>TESTTEXT_1000000/1
>TESTTEXT_10000001/1
>TESTTEXT_10000002/1
Input:
>TESTTEXT_10000000/2
>TESTTEXT_1000000/2
>TESTTEXT_10000002/2
>TESTTEXT_10000001/2
Output:
>TESTTEXT_10000000/2
>TESTTEXT_10000001/2
>TESTTEXT_1000000/2
>TESTTEXT_10000002/2
Dấu gạch chéo có được nhận dạng như một seperator không? sử dụng --field-sperator không làm thay đổi hành vi. Nếu vậy, tại sao là 1000000/2 ở giữa các mục 1000001/2 và 1000002/2? Sử dụng loại người, kiểu số hoặc các tùy chọn khác không bao giờ mang lại sự nhất quán. Có ai có thể giúp tôi ngoài này không?
: chỉnh sửa: Bởi vì nó có vẻ là có liên quan, xem xét các câu trả lời, giá trị của LC_ALL trên máy tính này là en_GB.UTF-8
Hãy thử điều này: 'LC_ALL = C sắp xếp tệp' – user000001