Bash 使用awk,消除文件中的任何空字段,并以正确的格式打印

Bash 使用awk,消除文件中的任何空字段,并以正确的格式打印,bash,awk,Bash,Awk,如何在以下名为“awk.txt”的文件中使用awk,并以适当的空格长度或制表符长度打印所有字段 # cat /root/awk.txt abc hij klm def pqr hij mmm fgf hgt yyt ghf jkw 我想在这上面使用awk并以以下正确的格式打印 abc hij klm def pqr hij mmm fgf hgt yyt ghf jkw 请帮忙 使用coreutils中的列命令: colum

如何在以下名为“awk.txt”的文件中使用awk,并以适当的空格长度或制表符长度打印所有字段

# cat /root/awk.txt
abc hij     klm
 def  pqr   hij
mmm fgf     hgt
  yyt   ghf   jkw
我想在这上面使用awk并以以下正确的格式打印

abc   hij   klm
def   pqr   hij
mmm   fgf   hgt
yyt   ghf   jkw

请帮忙

使用coreutils中的
命令:

column -t file
在这种特殊情况下,所有条目的长度都相同,下面的awk命令也可以执行此操作,但是
可以执行此操作,即使条目的长度不同:

awk '{$1=$1}1' OFS='  ' file

这行awk将使用printf()格式化输出

如果要删除以
#


请尝试为您的答案添加一些解释,它将更清晰、更有用。非常感谢,这将给出正确的输出(我已检查)。但是,您能否简单描述一下这两个awk命令以正确的格式打印它的实际功能。
awk '{printf "%3s\t%3s\t%3s\n",$1,$2,$3}' awk.txt
awk '!/^#/{printf "%3s\t%3s\t%3s\n",$1,$2,$3}'