我创建了这个文件:
Kuala Lumpur 78 56
Seoul 86 66
Karachi 95 75
Tokyo 85 60
Lahore 85 75
Manila 90 85
在命令行上,我可以使用sort -t
对其进行排序,并使用制表符空间进行分隔,但现在我正在尝试编写一个脚本来读取此内容并打印出不同的排序。现在如果我读入一个数组并告诉它存储在选项卡中,那么“吉隆坡”线就会被抛弃然后排序。我该怎么做这个空间。我不想把它取出或用逗号代替,但如果我必须,我会。
#!/bin/bash
cat asiapac-temps | sort -t' ' -k 1,1d
echo ""
cat asiapac-temps | sort -t' ' -k 2,2n
echo ""
cat asiapac-temps | sort -t' ' -k 3
这就是我现在正在使用的。我试图以不同的方式做到这一点,所以不要一遍又一遍地使用sort
输出是:
按城市:
Karachi 95 75
Kuala Lumpur 78 56
Lahore 85 75
Manila 90 85
Seoul 86 66
Tokyo 85 60
高温(col2)
Kuala Lumpur 78 56
Lahore 85 75
Tokyo 85 60
Seoul 86 66
Manila 90 85
Karachi 95 75
低温(col3)
Kuala Lumpur 78 56
Tokyo 85 60
Seoul 86 66
Karachi 95 75
Lahore 85 75
Manila 90 85
答案 0 :(得分:0)
如果您的问题是“如何从命令行输入制表符”,则答案为“您不需要” - 默认情况下,将制表符识别为分隔符。
答案 1 :(得分:0)
由于对mark a comment as an answer的功能请求仍然被拒绝,我在此处复制上述解决方案。
您无法对任何内容进行排序,并输出3种不同的结果。无论何时在shell中编写循环,您可能都采用了错误的方法(shell主要是一种可以从中调用工具而不是编程语言的环境)。每次想要生成排序输出时调用sort几乎肯定会比任何涉及数组索引的方法更简单,更有效。 - 艾德莫顿