多行bash变量的列格式
我试图打印一个漂亮的表格,显示几个(3)变量的值。其中一个变量包含多行作为其内容。这会扭曲生成的表的格式 首先尝试使用多行bash变量的列格式,bash,shell,printf,Bash,Shell,Printf,我试图打印一个漂亮的表格,显示几个(3)变量的值。其中一个变量包含多行作为其内容。这会扭曲生成的表的格式 首先尝试使用echo-e,这无助于尝试利用printf,但仍然无法更正格式。感谢您的帮助。谢谢 var1=10 var2=20 var3=$(cat temp.db) #This is causing issue. printf "%-10s%-10s%-30s\n" "var1" "var2" "var3" printf "%-10s%-10s%-30s\n" "$var1" "$var
echo-e
,这无助于尝试利用printf
,但仍然无法更正格式。感谢您的帮助。谢谢
var1=10
var2=20
var3=$(cat temp.db) #This is causing issue.
printf "%-10s%-10s%-30s\n" "var1" "var2" "var3"
printf "%-10s%-10s%-30s\n" "$var1" "$var2" "$var3"
其中,temp.db的结构如下:
cat temp.db
2 user1
3 user2
5 user3
6 user7
9 user9
期望输出:
我目前得到的是:
这听起来像是awk的工作。下面的文字记录显示了它的作用:
yup> awk '
...> BEGIN {
...> v1 = 10; v2 = 20; f="%-10s %-10s %-30s\n";
...> printf f, "var1", "var2", "var3";
...> }
...> {
...> printf f, v1, v2, $0;
...> v1 = ""; v2 = "";
...> }' inputFile
var1 var2 var3
10 20 2 user1
3 user2
5 user3
6 user7
9 user9
忽略…>
东西,它们是我的继续提示符PS2
,这样我就可以很好地排列多行语句(一些;
字符也是多余的,但我这样做只是为了一致性)
代码只是为var1/2
设置格式字符串和初始值,然后在BEGIN
块中打印标题。然后,对于每个输入行,它输出所需的列,并根据需要进行格式化
(a) 想想超人吧,但他没有那么方下巴,戴着更古怪的眼镜,可能还带着一个口袋护具:-)这听起来像是awk的工作。下面的文字记录显示了它的作用:
yup> awk '
...> BEGIN {
...> v1 = 10; v2 = 20; f="%-10s %-10s %-30s\n";
...> printf f, "var1", "var2", "var3";
...> }
...> {
...> printf f, v1, v2, $0;
...> v1 = ""; v2 = "";
...> }' inputFile
var1 var2 var3
10 20 2 user1
3 user2
5 user3
6 user7
9 user9
忽略…>
东西,它们是我的继续提示符PS2
,这样我就可以很好地排列多行语句(一些;
字符也是多余的,但我这样做只是为了一致性)
代码只是为var1/2
设置格式字符串和初始值,然后在BEGIN
块中打印标题。然后,对于每个输入行,它输出所需的列,并根据需要进行格式化
(a) 想想超人吧,但他没有那么方下巴,戴着更古怪的眼镜,可能还带着口袋保护器:——)
yup> awk '
...> BEGIN {
...> v1 = 10; v2 = 20; f="%-10s %-10s %-30s\n";
...> printf f, "var1", "var2", "var3";
...> }
...> {
...> printf f, v1, v2, $0;
...> v1 = ""; v2 = "";
...> }' inputFile
var1 var2 var3
10 20 2 user1
3 user2
5 user3
6 user7
9 user9