#!/bin/awk -f
{
if (length($0) < 80)
{
prefix = "";
for (i = 1;i<(80-length($0))/2;i++)
prefix = prefix " ";
print prefix $0;
}
else
{
print;
}
}
任何人都可以告诉我前缀变量在上面的代码中究竟做了什么。
答案 0 :(得分:1)
这是为了将传入的文本设为中心对齐文本。
注意:AWK中的$ 0是完整的字符串,例如“我想测试这个”,其中$ 1将是“我”而$ 2将是“想要”,而在shell中它打印你的你正在使用的当前shell
答案 1 :(得分:1)
如果线条长度短于线条长度,它会添加前填充以使线条在线条中居中,但您可以只使用以下内容执行相同的操作:
awk '{ printf "%*s\n",(80+length($0))/2, $0 }' file
答案 2 :(得分:0)
使用空格增加prefix
,根据公式在前面创建一个前面有空格的行。
echo "test" | awk -f script
test
答案 3 :(得分:0)
它构建一个空字符串占位符(用于左边填充),其长度为(80-length of the line)/2