在linux中安排输出看起来像表格列

时间:2018-02-22 15:49:29

标签: linux awk sed

请通过在需要的位置添加空格来帮助将输出排列为表格格式。下面是我的输出,我无法在第2行,第3行和第4行添加空格。

 a m  p  luo        16              8192            /dev/dsk/c0t5000C50039FFA34Dd0s7
 a    p  luo        8208            8192            /dev/dsk/c0t5000C50039FFA34Dd0s7
 a    p  luo        16              8192            /dev/dsk/c0t5000C5003A003295d0s7
 a    p  luo        16              8192            /dev/dsk/c0t5000C5003A003295d0s7

在上面的输出中我需要在'm'下面添加空格,以便我的输出可以是表格格式。但是,当我申请awk时,它似乎就是这样。

 awk -F" " '{print $1,$2,$3,$4}'

a m p luo 16
a p luo 8208
a p luo 16
a p luo 8208

请帮忙

1 个答案:

答案 0 :(得分:2)

要获得所需的输出,请使用此awk

$ awk -v FS="[[:space:]][[:space:]]+" -v OFS="\t" '{print $1,$2,$3,$4}' file
 a m    p       luo     16
 a      p       luo     8208
 a      p       luo     16
 a      p       luo     16

FS="[[:space:]][[:space:]]+"字段分隔符是连续的空格
OFS="\t"输出字段分隔符是标签