Macos /usr/bin/sort根据第三个字段对文件进行排序
我有一个文件看起来像: ??:??未知供应商100 00:11:d9 TiVo 951 抄送:3a:61三星机电有限公司259 84:1b:5e NETGEAR 82 74:e2:f5苹果829 字段由制表符分隔。 我应该使用什么组合将此文件从最高字节数排序到最低字节数。 字节数是文件的最后一个字段。 我尝试使用: /usr/bin/sort-nk3 filename.txtMacos /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
但是它不起作用。您可以使用
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
转换为文本选项卡。