使用Shell脚本在输出文本文件中分配具有100个字符空间的列

问题描述 投票:0回答:1

我只想从csv文件中提取行并逐行打印。事情是下面的代码获取并打印第四列。我想做的是,我只想为该列打印提供100个字符空间。如果该列有10个字符,我只想打印该字符,其余90个字符应在该行中为空。

cat filename | awk -F"," '{print $4}'
linux shell unix scripting
1个回答
0
投票

AWK具有支持格式的printf()功能。使用格式“%100s”和“%-100s”,您可以在打印的字符串的左侧或右侧填充空格:

 $ echo "a\nb\nc\nd" | awk '{ printf("|%10s|\n", $1);}'                                  
 |         a|
 |         b|
 |         c|
 |         d|
 $ echo "a\nb\nc\nd" | awk '{ printf("|%-10s|\n", $1);}'                                    
 |a         |
 |b         |
 |c         |
 |d         |
 $
© www.soinside.com 2019 - 2024. All rights reserved.