当前位置:  开发笔记 > 编程语言 > 正文

如何将短划线后的所有内容移动到新列?

如何解决《如何将短划线后的所有内容移动到新列?》经验,为你挑选了1个好方法。

我有一个文件,其中有一列文本,短划线( - )分隔不同的行.我想将短划线下的所有内容移动到新列.我的输入文件如下所示:

jim
bob
-
sally 
sue 
ed
-
bill 
-
jerry
curly
phil
-

我希望我的输出文件看起来像这样:

jim    sally    bill    jerry
bob    sue      -       curly
-      ed               phil
       -                -

先感谢您.



1> F. Knorr..:

你可以尝试这个名为的输入文件input:

 csplit -f tempfile input '/-/+1' '{*}'; paste tempfile*

随着csplit我们生成一个文件到期望输出的每个"列"( tempfile01,tempfile02,...).
接下来,我们合并这些临时文件.使用给定的示例输入,上述命令的输出为:

jim sally   bill    jerry   
bob sue     -       curly   
-   ed              phil    
    -               -   

添加rm tempfile*进行必要的清理可能是个好主意.

csplit -f tempfile input '/-/+1' '{*}'; paste tempfile* > output; rm tempfile*

推荐阅读
135369一生真爱_890
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有