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
Sorting 如何使用awk对第1列的值进行排序并仅打印第3列的对应值_Sorting_Awk - Fatal编程技术网

Sorting 如何使用awk对第1列的值进行排序并仅打印第3列的对应值

Sorting 如何使用awk对第1列的值进行排序并仅打印第3列的对应值,sorting,awk,Sorting,Awk,我尝试使用awk'{print$0 |“sort-t','-nk1'}'对文件进行排序,但我只想打印已排序文件的第三列。输入文件: 1 4 7 9 9 7 4 1 4 6 8 9 1 2 3 4 5 4 5 2 预期产出: 3. 7. 8. 5. 4. 两种简单的方法“仅打印排序文件的第三列”: 使用tr+cut命令: sort -n file | tr -s ' ' | cut -d' ' -f3 使用awk: sort -

我尝试使用
awk'{print$0 |“sort-t','-nk1'}'
对文件进行排序,但我只想打印已排序文件的第三列。输入文件:

1   4   7   9
9   7   4   1
4   6   8   9
1   2   3   4
5   4   5   2
预期产出:

3.
7.
8.
5.
4.

两种简单的方法“仅打印排序文件的第三列”:

使用
tr
+
cut
命令:

sort -n file | tr -s ' ' | cut -d' ' -f3

使用
awk

sort -n file | awk '{print $3}'
试试这个-

sort file|awk '{print $3}'
3
7
8
5
4

好吧,因为我已经开始使用Gnu awk的asorti做这件事了:

$ awk '
    { a[$1 "," $3]=$3 }      # get the data to a hash (*)
END { n=asorti(a)            # sort a by the index
      for(i=1;i<=n;i++) {    # for each ordered index
          split(a[i],b,",")  # split and
          print b[2]         # print the latter part
      }
}' file
3
7
8
5
4
$awk'
{a[$1',“$3]=$3}#将数据获取到散列(*)
END{n=asorti(a)#按索引对a排序

对于(i=1;i放置输入文件的一个片段,我不确定您是否需要awk来执行此操作,
sort
应该就足够了。我想您的意思可能是
sort-t','-nk1 file | awk-F,{print$3}'
谢谢@dawg我尝试过
sort-t','-nk1 file | awk-F,{print$3}'
当我得到一个空文件时,它没有打印任何东西:(如果我使用
sort-t','-nk1 file | awk-F,{print$1}'
它的打印方式与
sort-t','-nk1 file
相同,它只在我使用print$1 elce时打印,它不打印。
sort-n file | cut d,-f3
将执行相同的操作。
sort-t-t','-nk1 file | awk-F,{print$3}'(@user3132983,这就是为什么我要求发布你输入文件的一个片段