Dan*_*iel 1 linux command-line sort
我正在尝试按如下方式对文件进行排序,该文件具有多列,用逗号分隔,其中一列的日期格式为 mm/dd/yyyy。
$cat 文件名
AN1143,45.7,03/05/2012,
H9477,45.3,01/15/2010,
DN1222,45.1,03/05/1800,
J960,26.7,06/02,1900,
Z959,3128.
H12421,27.7,06/21/2000
我的意图是首先根据第一列排序,然后是包含日期的第三列。我尝试了以下命令:
sort -t"," -k1,1 -k3,9n.3,10n -k3,1n.3,2n -k3,4n.3,5n filename
Run Code Online (Sandbox Code Playgroud)
但我遇到了这个错误,任何解释的帮助表示赞赏。
排序:字段规范中的杂散字符:无效的字段规范â3,9n.3,10nâ
试试这个:
sort -t, -k1,1 -k3.7n -k3.1,3.2n -k3.4,3.5n < filename
Run Code Online (Sandbox Code Playgroud)
使用增强的样品数据文件运行样品,显示排序:
输入:
AN1143,45.7,03/05/2012,
AN1143,45.7,02/05/2012,
AN1143,45.7,03/04/2012,
AN1143,45.7,03/05/2011,
H9477,45.3,01/15/2010,
DN1222,45.1,03/05/1800,
J960,26.7,06/02,1990,
Z959,28.2,03/21/2016,
H12421,27.7,06/21/2000
Run Code Online (Sandbox Code Playgroud)
输出:
AN1143,45.7,03/05/2011,
AN1143,45.7,02/05/2012,
AN1143,45.7,03/04/2012,
AN1143,45.7,03/05/2012,
DN1222,45.1,03/05/1800,
H12421,27.7,06/21/2000
H9477,45.3,01/15/2010,
J960,26.7,06/02,1990,
Z959,28.2,03/21/2016,
Run Code Online (Sandbox Code Playgroud)