在linux中,将输出按表格列方式排列

在linux中,将输出按表格列方式排列,linux,awk,sed,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

请在需要时添加空白,帮助将输出安排为表格格式。下面是我的输出,我无法在第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

请帮助

要获得所需的输出,请使用此
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”
输出字段分隔符是制表符

不确定第一行是如何得到五个字段的
a m p 16
,尽管您打印了四个字段??我的坏
awk-F”“{print$1,$2,$3,$4,$5}'
你确定吗??因为底部的4行有4个字段,但现在你建议5个字段?我相信您希望使用
FS
作为不止一个空格来获得此处显示的输出。在Lilnux中,它工作得很好,如果我在Solaris SunOS上执行此操作,则会在第1行附近出现错误
awk:syntax error awk:bailing out靠近第1行
@Prayag,这是sun os,请检查我的解决方案。该错误消息表示您正在尝试使用旧的、损坏的awk,不幸的是,这是Solaris上的默认awk。改用/usr/xpg4/bin/awk。