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

标签 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

请帮忙

最佳答案

要获得您想要的输出,请使用此 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" 输出字段分隔符为tab

关于linux - 在 Linux 中安排输出看起来像表格列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48931640/

相关文章:

python - 在ubuntu中使用livestreamer录制

linux - omn​​etpp 无法在 Ubuntu 上启动

linux - 根据标题类别将行转换为属于不同类别的相应列

unix - 使用 awk 选择特定单词,同时忽略其他单词

sed - 在每行末尾添加文本

regex - sed:在匹配之前显示行

regex - bash 脚本中使用的以下 sed 行的含义

linux - 如何在shell中处理10多个参数

linux - 使用 awk 删除尾随零

linux - 以文字模式从另一个脚本编写 bash 脚本