我正在尝试对前 2 列的大(10mb)文件进行排序。该文件由 ASCII 241 (±) 分隔。问题是,在正确排序前 2 个数据字段后,无论是否包含 -s 选项,unix 都会继续对行的其余部分进行排序。
命令 :sort -k1bn -k2n -s -t$'\xF1' -o sorted_file file_to_sort
示例数据:(排序合理,所以我可以突出显示问题)
6033718±2± 0±20817742
6033718±3±20817742
6033718±3±20862761
6033718±3±SRDV408BC
6033718±3±KFT474
6033718±3±941764
6033718±4±20817742
6033718±4±20862761
6033718±4±SRDV408BC
6033718±4±KFT474
6033718±4±941764
6033718±5±21501-0-06 ±D13 * TIMING
6033718±5±17003-0-01 ±VEHICLE OPER
6033718±6±21501-0-06 ±10 ±0±
6033718±6±17003-0-01 ±10 ±0±
6033718±9±I± === Applicable Coverage
6033718±9±I±Volvo D11/13/16 / TIMING
6033718±9±E±check for oil leak, insp
运行命令后,我得到:
6033718±2± 0±20817742
6033718±3±20817742
6033718±3±20862761
6033718±3±941764
6033718±3±KFT474
6033718±3±SRDV408BC
6033718±4±20817742
6033718±4±20862761
6033718±4±941764
6033718±4±KFT474
6033718±4±SRDV408BC
6033718±5±17003-0-01 ±VEHICLE OPER
6033718±5±21501-0-06 ±D13 * TIMING
6033718±6±17003-0-01 ±10 ±0±
6033718±6±21501-0-06 ±10 ±0±
6033718±9±E±check for oil leak, insp
6033718±9±I± === Applicable Coverage
6033718±9±I±Volvo D11/13/16 / TIMING
如您所见,查看“3”、“4”和“9”记录,它们后面的第二个字段的数据已被排序,即使排序手册指出 -s 选项将阻止对其余字段进行排序键用完后的线路。
我在哪里错了?
顺便说一句,它似乎在较小的文件上工作正常。