打印x列,然后插入新行

时间:2017-10-04 22:21:37

标签: bash

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

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 个答案:

答案 0 :(得分:1)

编写一个shell脚本,如下所示:

#!/bin/bash

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

键入Tab键,显示TAB而不是字面输入。

如果您熟悉Perl,可以更容易地说:

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