我有一个文件,其中有一列文本,短划线( - )分隔不同的行.我想将短划线下的所有内容移动到新列.我的输入文件如下所示:
jim bob - sally sue ed - bill - jerry curly phil -
我希望我的输出文件看起来像这样:
jim sally bill jerry bob sue - curly - ed phil - -
先感谢您.
你可以尝试这个名为的输入文件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*