我有一个文本文件,其列以固定宽度隔开。文件的摘要将是
| OOOO OO OOOOOOOOOOOOOOOOOOOOOOOOOO|
| 8 0 0 |
| 9 1 8 |
| 12 28 18 |
| 108 16 250 |
我想在第二和第三列之间添加空格,因此它们之间将有10个空格,而不是3个空格。看起来像这样:
| OOOO OO OOOOOOOOOOOOOOOOOOOOOOOOOO|
| 8 0 0 |
| 9 1 8 |
| 12 28 18 |
| 108 16 250 |
为了这样做,我尝试了:
awk '{print " "$1" "$2" "$3 }' FILENAME
此命令的确添加空格,但文本未对齐。照原样,文本在第1列和第2列的右侧对齐,在第3列的左侧对齐。但是在我使用awk
命令后,文本变得混乱。
如何添加空格而不干扰文本对齐?
对于给定的格式,您可以这样做:
awk '{printf("%4s%7s%10s%s\n", $1, $2, " ", $3)}' FILENAME
((我认为垂直线不是文件的一部分,而是出于说明目的而添加的。)
$ awk '{printf "%-23s%s\n",substr($0,1,16),substr($0,17)}' file
| OOOO OO OOOOOOOOOOOOOOOOOOOOOOOOOO|
| 8 0 0 |
| 9 1 8 |
| 12 28 18 |
| 108 16 250 |