在linux中,将输出按表格列方式排列
请在需要时添加空白,帮助将输出安排为表格格式。下面是我的输出,我无法在第2、第3和第4行中添加空格在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
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。