2017-10-04 87 views
1

我有一个文件,其中包含制表符分隔的文本,我正在努力将它们格式化为特定数量的列,然后插入一个新行。例如,假设我的文件如下所示:打印x列然后插入新行

AAAA BBBB CCCC DDDD WWWW XXXX YYYY ZZZZ 

我想要打印2列,然后插入一个新行。理想情况下,输出应该是这样的:

AAAA BBBB CCCC DDDD 
WWWW XXXX YYYY ZZZZ 

我曾尝试xargs方式(如下图),都无济于事:

$ xargs -d"\t" -n2 < file 
AAAA BBBB CCCC DDDD 
WWWW XXXX YYYY ZZZZ 

我想保留制表符分隔的格式,有什么上面的错误是它基本上摆脱了我想保留的标签。

回答

1

写一个shell脚本,它看起来像:其中,而不是显示的字面输入制表

#!/bin/bash 

sed 's/\([^TAB]\+TAB[^TAB]\+TAB\)/\1\ 
/g' < text 

类型tab键。

如果你熟悉Perl,它会更容易地说:

perl -pe 's/([^\t]+\t[^\t]+)\t/$1\n/g;' < text 
+0

就个人而言,我更喜欢'perl'方式,这是一个快速和易于oneliner加上优雅! :) –