Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/macos/8.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
Macos /usr/bin/sort根据第三个字段对文件进行排序_Macos_Sorting_Terminal - Fatal编程技术网

Macos /usr/bin/sort根据第三个字段对文件进行排序

Macos /usr/bin/sort根据第三个字段对文件进行排序,macos,sorting,terminal,Macos,Sorting,Terminal,我有一个文件看起来像: ??:??未知供应商100 00:11:d9 TiVo 951 抄送:3a:61三星机电有限公司259 84:1b:5e NETGEAR 82 74:e2:f5苹果829 字段由制表符分隔。 我应该使用什么组合将此文件从最高字节数排序到最低字节数。 字节数是文件的最后一个字段。 我尝试使用: /usr/bin/sort-nk3 filename.txt 但是它不起作用。您可以使用awk获取最后一个字段并在开头打印它,然后使用它进行排序-r选项使用从高到低的相反顺序 awk

我有一个文件看起来像:

??:??未知供应商100

00:11:d9 TiVo 951

抄送:3a:61三星机电有限公司259

84:1b:5e NETGEAR 82

74:e2:f5苹果829

字段由制表符分隔。 我应该使用什么组合将此文件从最高字节数排序到最低字节数。 字节数是文件的最后一个字段。 我尝试使用:

/usr/bin/sort-nk3 filename.txt


但是它不起作用。

您可以使用
awk
获取最后一个字段并在开头打印它,然后使用它进行
排序
-r
选项使用从高到低的相反顺序

awk '{print $NF, $0}' filename.txt | sort -nk1r | awk '{$1="";print $0}'
从手册页:

   -t, --field-separator=SEP
          use SEP instead of non-blank to blank transition
所以你想要

sort -t $'\t' -nk3 filename.txt

你怎么从C打电话?如果使用
exec
$'\t'
不会由shell处理,而是直接传递给
排序
。如果使用
系统
,它可能使用的是
sh
,这可能不是在处理
$'\t'
,因为它是
bash
扩展。我使用的是
execl
。那么,我必须如何在程序中键入它呢?请删除
$
。C编译器将把
\t
转换为文本选项卡。