如何使用 awk 或其他方式呈现两列并保留第一列后的所有空格?

如何使用 awk 或其他方式呈现两列并保留第一列后的所有空格?

我的输出以人类可读的数字出现,其中一个空格后跟目录名:

我目前正在使用 ...

awk '{ printf "%-20s %-40s\n", $1, $2 }'

输入

1G foo
1.5M foo baz 
5K foo spaces in this directory

输出

1G    foo
1.5M  foo 
5K    foo 

期望

1G    foo
1.5M  foo baz 
5K    foo spaces in this directory

如何使用 awk 或其他方法将其拆分成带有空格分隔符的两列并保留第二列中的所有空格?

答案1

尝试这个:

$ awk '{ printf "%-20s ", $1; $1=""; print $0 }' input 
1G                    foo
1.5M                  foo baz
5K                    foo spaces in this directory

将前导列重置为空字符串是打印所有剩余字段/列的常用技巧。

相关内容