2015-09-04 99 views
0

我现在正在学习linux命令行,这个问题在我的脑子里已经将近一个星期了,但是我仍然觉得我还没有找到最佳解决方案,接下来的问题是:我的文件格式不好每行一个字:linux终端文本操作

SUSE 

FEDORA 

SUSE 

UBUNTU 

FEDORA 


10.2 

10 

11.0 

8.04 

8 
10.3 

6.10 

2006-12-07 

2008-11-25 

2008-06-19 

2008-04-24 

2007-11-08 

2007-10-04 

2006-10-26 

2007-05-31 

2007-10-18 

当你看到那些与版本和发行版的Linux发行版日期正确格式是未来:

2008-11-25 SUSE 10.2 

2008-06-19 FEDORA 10 

2008-04-24 SUSE 11.0 
... 

我相信一定会有排序这个权利很简单的办法,我的意思是用一行命令,而不是保存在其他文件中,然后再保存e在其他文件中。

+1

如果'SUSE'为'2008-11-25',那么'2006-12-07'属于谁?你可以使用'wc -l','split'和'paste',但是行数必须合理。 –

+2

您的关键字,日期和版本计数不匹配。如果你发布一个现实的样本,也许更多的人可以帮助你。 – karakfa

回答

1

我从你的项目数量匹配的发布

SUSE 
FEDORA 
SUSE 
UBUNTU 
FEDORA 
10.2 
10 
11.0 
8.04 
8 10.3 
2006-12-07 
2008-11-25 
2008-06-19 
2008-04-24 
2007-11-08 

此脚本将转换成3列和重新排列领域

pr -3t filename | awk '{print $3,$1,$2}' 

2006-12-07 SUSE 10.2 
2008-11-25 FEDORA 10 
2008-06-19 SUSE 11.0 
2008-04-24 UBUNTU 8.04 
10.3 FEDORA 8 
+0

谢谢!这是我认为会有的确切解决方案。 – valkiara

0

您可以运行vi filename,然后执行:克/^$/d为换行符。

然后对于定位,您可以使用Ctrl-v和y进行复制。您可能需要为版本的最后一行添加空格,以便您可以将所有内容以可视块模式复制。然后你可以使用Shift-p粘贴一个块。

+0

谢谢!但我认为没有vim的答案更好。 – valkiara