Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/linux/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/sorting/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Linux 使用awk和排序_Linux_Sorting_Awk - Fatal编程技术网

Linux 使用awk和排序

Linux 使用awk和排序,linux,sorting,awk,Linux,Sorting,Awk,我有一个包含如下名称和数字的文件: students.txt: Student A F 40 50 60 Student B F 50 60 70 Student C M 60 70 80 Student D M 100 90 90 Student E F 80 90 100 Student F M 20 30 40 Student G M 30 40 50 我想使用awk对这些名称进行排序,并按行中的最后一个数字进行排序 当我尝试 sort -k6 students.txt | awk '{

我有一个包含如下名称和数字的文件:

students.txt:

Student A F 40 50 60
Student B F 50 60 70
Student C M 60 70 80
Student D M 100 90 90
Student E F 80 90 100
Student F M 20 30 40
Student G M 30 40 50
我想使用awk对这些名称进行排序,并按行中的最后一个数字进行排序

当我尝试

sort -k6 students.txt | awk '{print}'
给我的输出是

... 100
... 40
... 50
... 60
... 70
... 80
... 90

因此,除第一个外,大部分都已排序。为什么100在输出的开头而不是结尾?您需要通过
-n
标志使用数字排序。从
排序(1)

结果:

$ sort -n -k6 students.txt Student F M 20 30 40 Student G M 30 40 50 Student A F 40 50 60 Student B F 50 60 70 Student C M 60 70 80 Student D M 100 90 90 Student E F 80 90 100 $sort-n-k6 students.txt 学生F M 20 30 40 学生G M 30 40 50 学生A F 40 50 60 学生乙F 50 60 70 学生C M 60 70 80 学生D M 100 90 学生E F 80 90 100
这里不需要
|awk'{print}
。你是对的,为了清晰起见,我的第一次尝试最初是
|awk'{print$1”“$2}'
,但我在去掉它后把它留在那里是错误的。可能是重复的 $ sort -n -k6 students.txt Student F M 20 30 40 Student G M 30 40 50 Student A F 40 50 60 Student B F 50 60 70 Student C M 60 70 80 Student D M 100 90 90 Student E F 80 90 100