如何用Linux解决这个问题呢? [关闭]

问题描述 投票:-2回答:2

我需要在Shell中创建一个表。所以,我认为首先我搜索最长的字符串,之后我将格式化,每列都有这个长度。我的问题是我无法在printf中插入变量。这是我的代码:

while read line
do
    printf "%-$longestfile s" $line
done < fajlok.txt
linux shell printf
2个回答
1
投票

标准shell变量处理:

printf "%-${longestfile}s" "$line"

0
投票

您可以将此表单用于printf:

printf '$-*s' "$longestfile" "$line"

如果宽度是字符*,则参数列表中必须有一个数字。


另一方面,使用column -t可用于拉直色谱柱。例如考虑

for i in {1..12}; do echo $RANDOM; done | paste -d " " - - -

for i in {1..12}; do echo $RANDOM; done | paste -d " " - - - | column -t

column -t的另一个好处是您可能不必计算最长的列宽。

© www.soinside.com 2019 - 2024. All rights reserved.