Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/54.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
Shell 使用awk和sort后重新插入分隔符_Shell_Sorting_Awk - Fatal编程技术网

Shell 使用awk和sort后重新插入分隔符

Shell 使用awk和sort后重新插入分隔符,shell,sorting,awk,Shell,Sorting,Awk,我对脚本非常陌生,所以如果这是一个非常明显的问题,请原谅我。我正在Bourne shell中编写约会跟踪脚本(不幸的是,我不得不使用Bourne)。我需要按日期顺序对约会进行排序,每个约会由7列组成,以冒号分隔: 1:26:2013:周六:16.00:17.30:烧烤 2013年1月24日:星期四:14.00:15.10:CSS会议 1:25:2013:星期五:12.00:12.30:商务午餐 1:27:2013:周日:10.00:17.30:志愿者海滩清理 2:24:2013:周日:20.00

我对脚本非常陌生,所以如果这是一个非常明显的问题,请原谅我。我正在Bourne shell中编写约会跟踪脚本(不幸的是,我不得不使用Bourne)。我需要按日期顺序对约会进行排序,每个约会由7列组成,以冒号分隔:

1:26:2013:周六:16.00:17.30:烧烤
2013年1月24日:星期四:14.00:15.10:CSS会议
1:25:2013:星期五:12.00:12.30:商务午餐
1:27:2013:周日:10.00:17.30:志愿者海滩清理
2:24:2013:周日:20.00:24.00:派对
2013年2月11日:星期一:16.00:17.30:牙医就诊
2013年1月24日:星期四:11.00:11.45:项目会议
3:24:2013:周日:8.00:11.30:教堂野餐
2013年2月8日:星期五:12.00:17.30:光环锦标赛
1:19:2013:周六:16.00:20.30:扑克

这是我到目前为止所拥有的,除了去掉冒号分隔符之外,它完全符合我的要求<代码>awk-F:“{print$1,$2,$3,$4,$5,$6,$7 |”sort-k 1,1-k 2,2n-k3,3n-n-o appts.txt”}appts.txt

1 19 2013周六16.00 20.30扑克
1 2013年12月24日星期四11.00 11.45项目会议
1 2013年12月24日星期四14.00 15.10 CSS会议
1.25 2013年星期五12.00 12.30商务午餐
1 26 2013周六16.00 17.30烧烤


如何取回冒号分隔符?

我太可笑了。。。不知道为什么我一开始就用awk

这正是我想要的

sort -k 1,1 -k 2,2n -k3,3n -n -t: -o appts.txt appts.txt

我很可笑。。。不知道为什么我一开始就用awk

这正是我想要的

sort -k 1,1 -k 2,2n -k3,3n -n -t: -o appts.txt appts.txt

最简单的答案是,首先不要移除它们。至少在我的sort版本中,它与原始文件一样工作:

sort -k 1,1 -k 2,2n -k3,3n -n -o appts2.txt < appts.txt

最简单的答案是,首先不要移除它们。至少在我的sort版本中,它与原始文件一样工作:

sort -k 1,1 -k 2,2n -k3,3n -n -o appts2.txt < appts.txt

排序顺序不应该是
-k3n-k1n-k2n
之类的吗?排序顺序不应该是
-k3n-k1n-k2n
之类的吗?