基本上我排序后我希望我的列被制表符分开。现在它被两个空格隔开。手册页没有任何与输出格式相关的内容(至少我没有注意到它)。
如果不可能,我想我必须使用awk进行排序和打印。还有更好的选择吗?
修改 为澄清问题,双空格的位置不一致。我实际上有这样的数据:
<date>\t<user>\t<message>
。
我按年份,月份,日期和时间按日期排序
Wed Jan 11 23:44:30 CST 2012
然后输出已排序的数据,如原始文件
<date>\t<user>\t<message>
。
编辑2:好像我对标签的测试错了。我是从bash复制粘贴原始行到我的Windows框。这就是为什么它不能识别为标签而是显示空格。我将整个文件下载到Windows,现在我可以看到这些字段是分隔符。
另外,我发现排序后新文件中的字段分隔(\ t \ n,:;等)是相同的。这意味着,在原始文件中,如果我有制表符分隔字段,我的排序文件也将以制表符分隔。
最后一点,“正确”的答案并不是解决问题的正确方法。我不知道我是否可以对自己的帖子发表评论并将其标记为正确。如果可以,请告诉我。
感谢评论家伙。真的很感谢你的帮助!
答案 0 :(得分:4)
将输出传输到列:
sort <whatever> | column -t -s\t
答案 1 :(得分:2)
答案 2 :(得分:1)
根据我的理解,文件已经排序,你想要的是用TAB字符替换两个分隔空格,在这种情况下,使用以下内容:
sed 's/ /\t/g' < sorted_file > new_formatted_file
(注意正确复制/粘贴正则表达式中的两个空格)